You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1832 lines
44 KiB

USE [qw2021]
GO
/****** Object: StoredProcedure [dbo].[Migrate_TAF_Import] Script Date: 26.05.2021 06:45:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Migrate_TAF_Import]
@ortnr int=0,
@return int=0 output,
@statistics varchar(max) output
AS
BEGIN
declare @cnt int
select @cnt=COUNT(*) from RES_RESULTATE
if @ortnr<>0 begin
delete from Res_Resultate where ortnr=@ortnr
delete from Res_Disziplin_Select where ortnr=@ortnr
end
INSERT INTO [dbo].[Res_Resultate]
([OrtNr]
,[Rang]
,[Nachname]
,[Vorname]
,[Jahrgang]
,[Land]
,[Verein]
,[Lizenz]
,[Kategorie_kurzname]
,[Kategorie]
,[Position]
,[Bahn]
,[Qualifikation]
,[Serie]
,[Disziplin]
,[Leistung]
,[Info]
,[Punkte]
,[Wind]
,[Nicht_Beruecksichtigen]
,[Nur_Erdgas]
,[Team])
select ortnr, roundrank,lastname,firstname,yob,nation,clubname,code,class,class,heatnr,lane,0,0,event,
--case when result='n.a.' then '-1' else result end as result,
dbo.leistungen_rechnen(event,result),
CASE WHEN event='HOC' and eventinfo = '1' then 'O'
when event='HOC' and eventinfo='2' then'XO'
WHEN EVENT='HOC' and eventinfo='3' then 'XXO' else eventinfo end,
SinglePoints,wind,0,0,''
from [dbo].[Res_TAF_Import]
where SinglePoints<>'' and SinglePoints > '0' and OrtNr=@ortnr
-- Diszipllin-Select für Orte festlegen
exec res_set_disziplin_select @ortnr
declare @rescount_alt int = @cnt
declare @rescount_neu int
select @rescount_neu=count(*) from RES_RESULTATE
set @cnt=0
select @cnt=COUNT(*) from RES_RESULTATE where Info<>'O' and Info <>'XO' and Info <>'XXO' and Disziplin='HOC'
set @return=@cnt
if @cnt>0 begin
set @statistics='{Fehler=1,Nicht alle Hochresultate haben einen korrekten Wert im Feld eventinfo='+ltrim(rtrim(@cnt))+','
end else begin
set @statistics='{Fehler=0,'
end
set @statistics=@statistics+'Anzahl Resultate vor Upload='+ltrim(rtrim(@rescount_alt))+','
set @statistics=@statistics+'Anzahl Resultate nach Upload='+ltrim(rtrim(@rescount_neu))+','
select @cnt=COUNT(*) from Res_TAF_Import where OrtNr=@ortnr
set @statistics=@statistics+'Anzahl Datensätze='+ltrim(rtrim(@cnt))+','
select @cnt= count(distinct [event]) from Res_TAF_Import where OrtNr=@ortnr
set @statistics=@statistics+'Anzahl Disziplinen='+ltrim(rtrim(@cnt))+','
select @cnt=COUNT(distinct class) from Res_TAF_Import where OrtNr=@ortnr
set @statistics=@statistics+'Anzahl Kategorien='+ltrim(rtrim(@cnt))
set @statistics=@statistics+'}'
print @statistics
END
GO
/****** Object: StoredProcedure [dbo].[res_resultate_aufbereiten] Script Date: 26.05.2021 06:45:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[res_resultate_aufbereiten] @orte VARCHAR(1024)
,@u10u12 VARCHAR(1)
,@resqw INT = 0
,@resew INT = 0
,@resortnr INT = 0
AS
BEGIN
DECLARE @batchstart DATETIME;
SET @batchstart = GETDATE();
PRINT 'Start: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, GETDATE()), 0), 114);
-----------------------------------------------------------------------------------------------
-- Work-Tabellen löschen
-----------------------------------------------------------------------------------------------
SET NOCOUNT ON;
TRUNCATE TABLE Res_Resultat_Komplett;
TRUNCATE TABLE res_temportdaten;
--IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Res_tmportdaten]') AND type in (N'U'))
--DROP TABLE [dbo].[Res_tmportdaten]
-----------------------------------------------------------------------------------------------
-- Betroffene Orte in temptable übernehmen
-----------------------------------------------------------------------------------------------
SELECT *
INTO #tmp1
FROM dbo.split(@orte, ';');
DECLARE @ort VARCHAR(50);
DECLARE @iortnr INT;
DECLARE @intortnr INT;
DECLARE @eintragnr INT;
DECLARE @ortnr INT;
DECLARE @rang VARCHAR(50);
DECLARE @land VARCHAR(50);
DECLARE @nachname VARCHAR(50);
DECLARE @vorname VARCHAR(50);
DECLARE @jahrgang VARCHAR(50);
DECLARE @verein VARCHAR(50);
DECLARE @lizenz VARCHAR(50);
DECLARE @kategorie_kurzname VARCHAR(50);
DECLARE @kategorie VARCHAR(50);
DECLARE @position VARCHAR(50);
DECLARE @bahn VARCHAR(50);
DECLARE @qualifikation VARCHAR(50);
DECLARE @serie VARCHAR(50);
DECLARE @disziplin VARCHAR(50);
DECLARE @leistung VARCHAR(50);
DECLARE @punkte VARCHAR(50);
DECLARE @info VARCHAR(50);
DECLARE @wind VARCHAR(50);
DECLARE @nicht_beruecksichtigen INT;
DECLARE @xsql VARCHAR(1024);
DECLARE @tblc VARCHAR(1024);
DECLARE @v INT;
DECLARE @ne INT;
DECLARE @team VARCHAR(50);
DECLARE @sl VARCHAR(50);
SET @tblc = ' CREATE TABLE [dbo].[_tmpres]([Rang] [int] NULL, [name] [varchar](101) NULL, [Jahrgang] [varchar](50) NULL, [Lizenz] [varchar](50) NULL,';
SET @tblc = @tblc + ' [Verein] [varchar](50) NULL, [Kategorie_kurzname] [varchar](50) NULL, [Kategorie] [varchar](50) NULL,[Disziplin] [varchar](50) NULL,';
DECLARE @reseintrag INT;
DECLARE @reseintrag1 INT;
DECLARE @oc INT;
SET @intortnr = 1;
SET @oc = 0;
DECLARE xc CURSOR
FOR
SELECT *
FROM #tmp1;
OPEN xc;
FETCH NEXT
FROM xc
INTO @ort;
WHILE @@fetch_status = 0
BEGIN
SELECT @iortnr = ortnr
FROM dbo.res_ort
WHERE ort = @ort;
IF @resew <> 1
BEGIN
DECLARE xc1 CURSOR
FOR
SELECT *
FROM dbo.res_resultate a
WHERE a.ortnr = @iortnr
AND a.nicht_beruecksichtigen <> 1
AND a.nur_erdgas = 0 -- and disziplin<>'HOCH'
AND a.kategorie IN (SELECT kategorie FROM Res_Disziplin_Select WHERE Disziplin=a.Disziplin AND bestenliste=1 and ortnr=a.ortnr)
ORDER BY a.lizenz
,a.nachname
,a.vorname
,a.punkte;
--SELECT *
--FROM dbo.res_resultate
--WHERE ortnr = @iortnr
-- AND nicht_beruecksichtigen <> 1
-- AND nur_erdgas = 0 -- and disziplin<>'HOCH'
--ORDER BY lizenz
-- ,nachname
-- ,vorname
-- ,punkte
END;
ELSE
BEGIN
DECLARE xc1 CURSOR
FOR
SELECT *
FROM dbo.res_resultate a
WHERE ortnr = @iortnr
AND nicht_beruecksichtigen <> 1 -- and disziplin<>'HOCH'
AND a.kategorie IN (SELECT kategorie FROM Res_Disziplin_Select WHERE Disziplin=a.Disziplin AND bestenliste=1 and ortnr=a.ortnr)
ORDER BY lizenz
,nachname
,vorname
,punkte;
END;
OPEN xc1;
FETCH NEXT
FROM xc1
INTO @eintragnr
,@ortnr
,@rang
,@nachname
,@vorname
,@jahrgang
,@land
,@verein
,@lizenz
,@kategorie_kurzname
,@kategorie
,@position
,@bahn
,@qualifikation
,@serie
,@disziplin
,@leistung
,@info
,@punkte
,@wind
,@nicht_beruecksichtigen
,@ne
,@team;
WHILE @@fetch_status = 0
BEGIN
SET @v = 1;
--if @disziplin='HOCH' begin
IF @disziplin = 'HOC'
BEGIN
SET @v = 0;
SET @v = (
SELECT CHARINDEX('O', @info)
);
END;
IF @v > 0
BEGIN
IF RTRIM(LTRIM(@lizenz)) <> '0'
AND RTRIM(LTRIM(@lizenz)) <> ''
BEGIN
SELECT @ResEintrag = eintragnr
FROM dbo.res_resultat_komplett
WHERE lizenz = @lizenz
AND disziplin = @disziplin;
IF @@rowcount = 0
BEGIN
INSERT dbo.res_resultat_komplett (
nachname
,vorname
,jahrgang
,land
,verein
,lizenz
,kategorie_kurzname
,kategorie
,disziplin
,ort1
,ort2
,ort3
,ort4
,ort5
,ort6
,ort7
,ort8
,ort9
,ort10
,best
,rang
,hochversuch
,Team
,sl
)
VALUES (
@nachname
,@vorname
,@jahrgang
,@land
,@verein
,@lizenz
,@kategorie_kurzname
,@kategorie
,@disziplin
,0
,0
,0
,0
,0
,0
,0
,0
,0
,0
,''
,0
,''
,@team
,@leistung
);
SELECT TOP 1 @reseintrag = eintragnr
FROM dbo.res_resultat_komplett
ORDER BY eintragnr DESC;
END;
END;
ELSE
BEGIN
SELECT @ResEintrag = eintragnr
FROM dbo.res_resultat_komplett
WHERE nachname = @nachname
AND vorname = @vorname
AND jahrgang = @jahrgang
AND kategorie = @kategorie
AND disziplin = @disziplin;
IF @@rowcount = 0
BEGIN
INSERT dbo.res_resultat_komplett (
nachname
,vorname
,jahrgang
,land
,verein
,lizenz
,kategorie_kurzname
,kategorie
,disziplin
,ort1
,ort2
,ort3
,ort4
,ort5
,ort6
,ort7
,ort8
,ort9
,ort10
,best
,rang
,hochversuch
,team
,sl
)
VALUES (
@nachname
,@vorname
,@jahrgang
,@land
,@verein
,@lizenz
,@kategorie_kurzname
,@kategorie
,@disziplin
,0
,0
,0
,0
,0
,0
,0
,0
,0
,0
,''
,0
,''
,@team
,@leistung
);
SELECT TOP 1 @reseintrag = eintragnr
FROM dbo.res_resultat_komplett
ORDER BY eintragnr DESC;
END;
END;
INSERT INTO dbo.res_temportdaten (
eintragparent
,POSITION
,bahn
,qualifikation
,serie
,leistung
,info
,punkte
,wind
,leistung_aufbereitet
)
VALUES (
@reseintrag
,@position
,@bahn
,@qualifikation
,@serie
,@leistung
,@info
,@punkte
,@wind
,dbo.get_leistung(@leistung, @disziplin)
);
SELECT TOP 1 @reseintrag1 = eintragnr
FROM dbo.res_temportdaten
ORDER BY eintragnr DESC;
SET @sl = @leistung;
--shu 20100527; HOCH ebenfalls ausschliessen
IF SUBSTRING(@disziplin, 1, 3) <> '1K0'
AND SUBSTRING(@disziplin, 1, 3) <> '600'
AND @disziplin <> 'HOC'
BEGIN
-- if substring(@disziplin,1,4)<>'1000' and substring(@disziplin,1,3)<>'600' and @disziplin <> 'HOCH'begin
IF SUBSTRING(@leistung, 1, 1) <> '-'
BEGIN
SET @sl = '-' + @punkte;
END;
END;
-- 20100527 - SHU Speziell für HOXH
--if @disziplin='HOCH' begin
IF @disziplin = 'HOC'
BEGIN
UPDATE dbo.res_resultat_komplett
SET sl = @sl
WHERE eintragnr = @reseintrag
AND @sl > sl;
DECLARE @sl1 VARCHAR(50);
SELECT @sl1 = sl
FROM dbo.Res_Resultat_Komplett
WHERE eintragnr = @reseintrag;
IF @sl = @sl1
BEGIN
SET @xsql = 'ort' + RTRIM(LTRIM(STR(@intortnr)));
SET @xsql = 'update dbo.res_resultat_komplett set ' + @xsql + '=' + LTRIM(RTRIM(STR(@reseintrag1))) + ' where eintragnr=' + LTRIM(RTRIM(STR(@reseintrag)));
EXECUTE (@xsql);
END;
ELSE
BEGIN
-- 20100615 korrektur hoch
SET @xsql = 'ort' + RTRIM(LTRIM(STR(@intortnr)));
SET @xsql = 'update dbo.res_resultat_komplett set ' + @xsql + '=' + LTRIM(RTRIM(STR(@reseintrag1))) + ' where eintragnr=' + LTRIM(RTRIM(STR(@reseintrag)));
EXECUTE (@xsql);
END;
END;
ELSE
BEGIN
UPDATE dbo.res_resultat_komplett
SET sl = @sl
WHERE eintragnr = @reseintrag
AND @sl < sl;
SET @xsql = 'ort' + RTRIM(LTRIM(STR(@intortnr)));
SET @xsql = 'update dbo.res_resultat_komplett set ' + @xsql + '=' + LTRIM(RTRIM(STR(@reseintrag1))) + ' where eintragnr=' + LTRIM(RTRIM(STR(@reseintrag)));
EXECUTE (@xsql);
END;
END;
FETCH NEXT
FROM xc1
INTO @eintragnr
,@ortnr
,@rang
,@nachname
,@vorname
,@jahrgang
,@land
,@verein
,@lizenz
,@kategorie_kurzname
,@kategorie
,@position
,@bahn
,@qualifikation
,@serie
,@disziplin
,@leistung
,@info
,@punkte
,@wind
,@nicht_beruecksichtigen
,@ne
,@team;
END;
CLOSE xc1;
DEALLOCATE xc1;
SET @intortnr = @intortnr + 1;
FETCH NEXT
FROM xc
INTO @ort;
END;
CLOSE xc;
DEALLOCATE xc;
---- shu 20100527
PRINT 'Vor Res 1: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, GETDATE()), 0), 114);
EXECUTE dbo.res_resultate_aufbereiten_1 @u10u12;
PRINT 'Nach Res 1: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, GETDATE()), 0), 114);
WHILE @oc < 9
BEGIN
SET @tblc = @tblc + '[F' + LTRIM(RTRIM(@oc)) + '] [varchar] (50) null,';
SET @oc = @oc + 1;
END;
IF EXISTS (
SELECT *
FROM sys.objects
WHERE OBJECT_ID = OBJECT_ID(N'[dbo].[_tmpres]')
AND TYPE IN (N'U')
)
DROP TABLE [dbo].[_tmpres];
SET @tblc = @tblc + '[Best] [varchar](50) NULL,[BestPunkte] [int] NULL, [Land] [Varchar] (50) NULL, [hochversuch] [varchar] (50) null, [hochbest] [varchar] (50) null, [team] [varchar] (50) null) ON [PRIMARY]';
EXECUTE (@tblc);
UPDATE dbo.res_temportdaten
SET leistung_aufbereitet = '0'
,leistung = 0
WHERE punkte = 0;
INSERT dbo._tmpres
SELECT dbo.Res_Resultat_Komplett.Rang
,dbo.Res_Resultat_Komplett.Nachname + ' ' + dbo.Res_Resultat_Komplett.Vorname AS name
,dbo.Res_Resultat_Komplett.Jahrgang
,dbo.Res_Resultat_Komplett.Lizenz
,dbo.Res_Resultat_Komplett.Verein
,dbo.Res_Resultat_Komplett.Kategorie_kurzname
,dbo.Res_Resultat_Komplett.Kategorie
,dbo.Res_Resultat_Komplett.Disziplin
,dbo.res_temportdaten.Leistung_Aufbereitet AS Lo1
,res_temportdaten_1.Leistung_Aufbereitet AS Lo2
,res_temportdaten_2.Leistung_Aufbereitet AS Lo3
,res_temportdaten_3.Leistung_Aufbereitet AS Lo4
,res_temportdaten_4.Leistung_Aufbereitet AS Lo5
,res_temportdaten_5.Leistung_Aufbereitet AS Lo6
,res_temportdaten_6.Leistung_Aufbereitet AS Lo7
,res_temportdaten_7.Leistung_Aufbereitet AS Lo8
,res_temportdaten_8.Leistung_Aufbereitet AS Lo9
,dbo.Res_Resultat_Komplett.Best
,dbo.Res_Resultat_Komplett.BestPunkte
,dbo.res_resultat_komplett.land
,dbo.Res_Resultat_Komplett.HochVersuch
,dbo.Res_Resultat_Komplett.Hochbest
,dbo.Res_Resultat_Komplett.Team
FROM dbo.Res_Resultat_Komplett
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_7 ON dbo.Res_Resultat_Komplett.ort8 = res_temportdaten_7.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_6 ON dbo.Res_Resultat_Komplett.ort7 = res_temportdaten_6.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_4 ON dbo.Res_Resultat_Komplett.ort5 = res_temportdaten_4.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_1 ON dbo.Res_Resultat_Komplett.ort2 = res_temportdaten_1.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_2 ON dbo.Res_Resultat_Komplett.ort3 = res_temportdaten_2.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_3 ON dbo.Res_Resultat_Komplett.ort4 = res_temportdaten_3.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten ON dbo.Res_Resultat_Komplett.ort1 = dbo.res_temportdaten.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_5 ON dbo.Res_Resultat_Komplett.ort6 = res_temportdaten_5.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_8 ON dbo.Res_Resultat_Komplett.ort9 = res_temportdaten_8.EintragNr;
UPDATE dbo._tmpres
SET best = 0
WHERE best = '-0.01';
UPDATE dbo._tmpres
SET best = 0
WHERE best = '-0.00';
--shu 20100527
--update dbo._tmpres set best=0 where bestpunkte='0'
UPDATE dbo._tmpres
SET best = 0
WHERE bestpunkte = '0'
AND best IS NULL;
IF @resqw = 0
AND @resew = 0
BEGIN
DECLARE @qw VARCHAR(MAX);
DECLARE @rangliste VARCHAR(MAX);
DECLARE @reskat VARCHAR(MAX);
DECLARE xc CURSOR
FOR
SELECT qw
,Kategorie
,rangliste
FROM Disziplin_Mapping ORDER BY Kategorie DESC;
OPEN xc;
FETCH NEXT
FROM xc
INTO @qw
,@reskat
,@rangliste;
WHILE @@FETCH_STATUS = 0
BEGIN
IF @reskat='' BEGIN
UPDATE dbo._tmpres
SET Disziplin = @rangliste
WHERE Disziplin = @qw;
END; ELSE BEGIN
UPDATE dbo._tmpres
SET Disziplin = @rangliste
WHERE Disziplin = @qw AND kategorie=@reskat;
END;
FETCH NEXT
FROM xc
INTO @qw
,@reskat
,@rangliste;
END;
CLOSE xc;
DEALLOCATE xc;
SELECT *
FROM dbo._tmpres;
END;
ELSE
BEGIN
PRINT 'res 2 start: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, GETDATE()), 0), 114);
EXECUTE dbo.res_resultate_aufbereiten_2 @u10u12
,@resqw
,@resew
,@resortnr;
PRINT 'res 2 ende: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, GETDATE()), 0), 114);
END;
PRINT 'Ende: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, GETDATE()), 0), 114);
END;
GO
/****** Object: StoredProcedure [dbo].[res_resultate_aufbereiten_1] Script Date: 26.05.2021 06:45:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[res_resultate_aufbereiten_1] @u10u12 VARCHAR(1)
AS
CREATE TABLE #tmpd (
[ortnr] [int] NULL
,[ortpt] [int] NULL
,[hochbest] VARCHAR(50)
) ON [PRIMARY]
DECLARE @pnr INT
DECLARE @onr1 INT
DECLARE @opt1 INT
DECLARE @onr2 INT
DECLARE @opt2 INT
DECLARE @onr3 INT
DECLARE @opt3 INT
DECLARE @onr4 INT
DECLARE @opt4 INT
DECLARE @onr5 INT
DECLARE @opt5 INT
DECLARE @onr6 INT
DECLARE @opt6 INT
DECLARE @onr7 INT
DECLARE @opt7 INT
DECLARE @onr8 INT
DECLARE @opt8 INT
DECLARE @onr9 INT
DECLARE @opt9 INT
DECLARE @info1 VARCHAR(50)
DECLARE @info2 VARCHAR(50)
DECLARE @info3 VARCHAR(50)
DECLARE @info4 VARCHAR(50)
DECLARE @info5 VARCHAR(50)
DECLARE @info6 VARCHAR(50)
DECLARE @info7 VARCHAR(50)
DECLARE @info8 VARCHAR(50)
DECLARE @info9 VARCHAR(50)
DECLARE @onrbest INT
DECLARE @optbest INT
DECLARE @l VARCHAR(50)
DECLARE @disx VARCHAR(50)
DECLARE @info VARCHAR(50)
DECLARE @hv VARCHAR(50)
DECLARE @hb VARCHAR(50)
DECLARE @hb1 VARCHAR(50)
DECLARE @sl INT
DECLARE @batchstart DATETIME
SET @batchstart = GETDATE()
PRINT ' Res 1 Start: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, getdate()), 0), 114)
DECLARE x1 CURSOR
FOR
SELECT dbo.Res_Resultat_Komplett.EintragNr
,dbo.Res_Resultat_Komplett.Disziplin
,res_temportdaten_2.EintragNr AS Oort1Nr
,res_temportdaten_2.Punkte AS Ort1Pt
,res_temportdaten_2.Info AS Info1
,res_temportdaten_1.EintragNr AS Ort2Nr
,res_temportdaten_1.Punkte AS Ort2Pt
,res_temportdaten_1.Info AS Info2
,res_temportdaten_3.EintragNr AS Ort3Nr
,res_temportdaten_3.Punkte AS Ort3Pt
,res_temportdaten_3.Info AS Info3
,res_temportdaten_7.EintragNr AS Ort4Nr
,res_temportdaten_7.Punkte AS Ort4Pt
,res_temportdaten_7.Info AS Info4
,res_temportdaten_4.EintragNr AS Ort5Nr
,res_temportdaten_4.Punkte AS Ort5Pt
,res_temportdaten_4.Info AS Info5
,res_temportdaten_5.EintragNr AS Ort6Nr
,res_temportdaten_5.Punkte AS Ort6Pt
,res_temportdaten_5.Info AS Info6
,res_temportdaten_6.EintragNr AS OrtNr7
,res_temportdaten_6.Punkte AS OrtPt7
,res_temportdaten_6.Info AS Info7
,dbo.res_temportdaten.EintragNr AS OrtNr8
,dbo.res_temportdaten.Punkte AS OrtPt8
,dbo.res_temportdaten.Info AS Info8
,res_temportdaten_8.EintragNr AS OrtNr9
,res_temportdaten_8.Punkte AS OrtPt9
,res_temportdaten_8.Info AS Info9
FROM dbo.Res_Resultat_Komplett
LEFT OUTER JOIN dbo.res_temportdaten ON dbo.Res_Resultat_Komplett.ort8 = dbo.res_temportdaten.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_6 ON dbo.Res_Resultat_Komplett.ort7 = res_temportdaten_6.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_4 ON dbo.Res_Resultat_Komplett.ort5 = res_temportdaten_4.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_5 ON dbo.Res_Resultat_Komplett.ort6 = res_temportdaten_5.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_7 ON dbo.Res_Resultat_Komplett.ort4 = res_temportdaten_7.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_3 ON dbo.Res_Resultat_Komplett.ort3 = res_temportdaten_3.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_1 ON dbo.Res_Resultat_Komplett.ort2 = res_temportdaten_1.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_2 ON dbo.Res_Resultat_Komplett.ort1 = res_temportdaten_2.EintragNr
LEFT OUTER JOIN dbo.res_temportdaten AS res_temportdaten_8 ON dbo.Res_Resultat_Komplett.ort9 = res_temportdaten_8.EintragNr
OPEN x1
FETCH NEXT
FROM x1
INTO @pnr
,@disx
,@onr1
,@opt1
,@info1
,@onr2
,@opt2
,@info2
,@onr3
,@opt3
,@info3
,@onr4
,@opt4
,@info4
,@onr5
,@opt5
,@info5
,@onr6
,@opt6
,@info6
,@onr7
,@opt7
,@info7
,@onr8
,@opt8
,@info8
,@onr9
,@opt9
,@info9
WHILE @@fetch_status = 0
BEGIN
--if @disx='HOCH' begin
IF @disx = 'HOC'
BEGIN
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr1
,@opt1
,@info1
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr2
,@opt2
,@info2
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr3
,@opt3
,@info3
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr4
,@opt4
,@info4
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr5
,@opt5
,@info5
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr6
,@opt6
,@info6
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr7
,@opt7
,@info7
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr8
,@opt8
,@info8
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr9
,@opt9
,@info9
)
END
ELSE
BEGIN
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr1
,@opt1
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr2
,@opt2
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr3
,@opt3
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr4
,@opt4
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr5
,@opt5
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr6
,@opt6
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr7
,@opt7
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr8
,@opt8
,'xxxx'
)
INSERT #tmpd (
ortnr
,ortpt
,[hochbest]
)
VALUES (
@onr9
,@opt9
,'xxxx'
)
END
SET @hv = ''
SELECT TOP 1 @onrbest = ortnr
,@optbest = ortpt
,@hb = dbo.get_hochversuche(hochbest)
FROM #tmpd
ORDER BY ortpt DESC
,hochbest ASC
SELECT @l = leistung_aufbereitet
FROM dbo.res_temportdaten
WHERE eintragnr = @onrbest
--if upper(@disx)='HOCH' begin
IF upper(@disx) = 'HOC'
BEGIN
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr1
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr2
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr3
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr4
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr5
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr6
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr7
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SET @info = ''
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr8
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
SELECT @info = dbo.get_hochversuche(info)
FROM dbo.res_temportdaten
WHERE eintragnr = @onr9
IF @info <> ''
BEGIN
IF @hv <> ''
SET @hv = @hv + ';'
SET @hv = @hv + @info
END
END
UPDATE dbo.res_resultat_komplett
SET best = @l
,bestpunkte = @optbest
,hochversuch = @hv
,hochbest = @hb
WHERE eintragnr = @pnr
TRUNCATE TABLE #tmpd
FETCH NEXT
FROM x1
INTO @pnr
,@disx
,@onr1
,@opt1
,@info1
,@onr2
,@opt2
,@info2
,@onr3
,@opt3
,@info3
,@onr4
,@opt4
,@info4
,@onr5
,@opt5
,@info5
,@onr6
,@opt6
,@info6
,@onr7
,@opt7
,@info7
,@onr8
,@opt8
,@info8
,@onr9
,@opt9
,@info9
END
CLOSE x1
DEALLOCATE x1
PRINT ' Res1 Ende Teil 1: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, getdate()), 0), 114)
DECLARE @rang INT
DECLARE @kat VARCHAR(50)
DECLARE @kat1 VARCHAR(50)
DECLARE @dis VARCHAR(50)
DECLARE @dis1 VARCHAR(50)
DECLARE @pt FLOAT
DECLARE @pt1 FLOAT
DECLARE @enr INT
DECLARE @rang1 INT
SET @kat = ''
SET @kat1 = ''
SET @dis = ''
SET @dis1 = ''
SET @pt = 0
SET @pt1 = 0
SET @rang = 0
SET @rang1 = 1
SET @hb = ''
SET @hb1 = ''
IF @u10u12 = 'J'
BEGIN
UPDATE dbo.res_resultat_komplett
SET kategorie_kurzname = 'U12M'
WHERE kategorie_kurzname = 'U10M'
UPDATE dbo.res_resultat_komplett
SET kategorie_kurzname = 'U12W'
WHERE kategorie_kurzname = 'U10W'
END
DECLARE xc CURSOR
FOR
SELECT EintragNr
,Kategorie_kurzname
,Disziplin
,sl
,hochbest
FROM Res_Resultat_Komplett
ORDER BY Kategorie_kurzname
,Disziplin
,BestPunkte DESC
,sl ASC
,hochbest ASC
,hochversuch ASC
OPEN xc
FETCH NEXT
FROM xc
INTO @enr
,@kat
,@dis
,@pt
,@hb
WHILE @@fetch_status = 0
BEGIN
IF @kat1 <> @kat
BEGIN
SET @kat1 = @kat
SET @rang = 0
SET @rang1 = 1
END
IF @dis1 <> @dis
BEGIN
SET @dis1 = @dis
SET @rang = 0
SET @rang1 = 1
END
IF @pt <> @pt1
BEGIN
SET @pt1 = @pt
SET @rang = @rang1
END
--if @dis='HOCH' and (@hb <> @hb1) begin
IF @dis = 'HOC'
AND (@hb <> @hb1)
BEGIN
SET @hb1 = @hb
SET @rang = @rang1
END
SET @rang1 = @rang1 + 1
UPDATE dbo.res_resultat_komplett
SET rang = @rang
WHERE eintragnr = @enr
FETCH NEXT
FROM xc
INTO @enr
,@kat
,@dis
,@pt
,@hb
END
CLOSE xc
DEALLOCATE xc
PRINT ' Res1 End Teil 2: ' + CONVERT(VARCHAR(12), DATEADD(ms, DATEDIFF(ms, @BatchStart, getdate()), 0), 114)
GO
/****** Object: StoredProcedure [dbo].[res_resultate_aufbereiten_2] Script Date: 26.05.2021 06:45:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[res_resultate_aufbereiten_2]
@u10u12 varchar(1),
@resqw int = 0,
@resew int = 0,
@resortnr int=0
AS
BEGIN
CREATE TABLE #tmpa(
[Rang] [int] NULL,
[name] [varchar](101) NULL,
[Jahrgang] [varchar](50) NULL,
[Lizenz] [varchar](50) NULL,
[Verein] [varchar](50) NULL,
[Kategorie_Kurzname] [varchar](50) NULL,
[Kategorie] [varchar](50) NULL,
[Disziplin] [varchar](50) NULL,
[F0] [varchar](50) NULL,
[F1] [varchar](50) NULL,
[F2] [varchar](50) NULL,
[F3] [varchar](50) NULL,
[F4] [varchar](50) NULL,
[F5] [varchar](50) NULL,
[F6] [varchar](50) NULL,
[F7] [varchar](50) NULL,
[Best] [varchar](50) NULL,
[BestPunkte] [int] NULL,
[Land] [varchar](50) NULL,
[hochversuch] [varchar](50) NULL,
[hochbest] [varchar](50) NULL,
[team] [varchar](50) NULL,
[pk] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
CREATE TABLE #tmpr(
[Rang] [int] NULL,
[name] [varchar](101) NULL,
[Jahrgang] [varchar](50) NULL,
[Lizenz] [varchar](50) NULL,
[Verein] [varchar](50) NULL,
[Kategorie_Kurzname] [varchar](50) NULL,
[Kategorie] [varchar](50) NULL,
[Dis1] [varchar](50) NULL,
[Lei1] [varchar](50) NULL,
[Pun1] [varchar](50) NULL,
[Dis2] [varchar](50) NULL,
[Lei2] [varchar](50) NULL,
[Pun2] [varchar](50) NULL,
[Dis3] [varchar](50) NULL,
[Lei3] [varchar](50) NULL,
[Pun3] [varchar](50) NULL,
[Dis4] [varchar](50) NULL,
[Lei4] [varchar](50) NULL,
[Pun4] [varchar](50) NULL,
[Dis5] [varchar](50) NULL,
[Lei5] [varchar](50) NULL,
[Pun5] [varchar](50) NULL,
[Dis6] [varchar](50) NULL,
[Lei6] [varchar](50) NULL,
[Pun6] [varchar](50) NULL,
[Best] [varchar](50) NULL,
[team] [varchar](50) NULL,
[pk] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
if @resqw=1 begin
goto qw
end
if @resew=1 begin
goto ew
end
return
qw:
insert into #tmpa SELECT dbo._tmpres.Rang, dbo._tmpres.name, dbo._tmpres.Jahrgang, dbo._tmpres.Lizenz, dbo._tmpres.Verein, dbo._tmpres.Kategorie_kurzname, dbo._tmpres.Kategorie,
dbo._tmpres.Disziplin, dbo._tmpres.F0, dbo._tmpres.F1, dbo._tmpres.F2, dbo._tmpres.F3, dbo._tmpres.F4, dbo._tmpres.F5, dbo._tmpres.F6, dbo._tmpres.F7,
dbo._tmpres.Best, dbo._tmpres.BestPunkte, dbo._tmpres.Land, dbo._tmpres.hochversuch, dbo._tmpres.hochbest, dbo._tmpres.team
FROM dbo.Res_Disziplin_Select INNER JOIN
dbo._tmpres ON dbo.Res_Disziplin_Select.Disziplin = dbo._tmpres.Disziplin AND dbo.Res_Disziplin_Select.Kategorie = dbo._tmpres.Kategorie_kurzname
WHERE (dbo.Res_Disziplin_Select.QW = 1) AND (dbo.Res_Disziplin_Select.OrtNr = @resortnr)
declare @dis varchar(50)
declare @name varchar(50)
declare @jg varchar(50)
declare @lic varchar(50)
declare @verein varchar(50)
declare @kat_kurz varchar(50)
declare @kat varchar(50)
declare @dis1 varchar(50)
declare @cnt int
declare @katalt varchar(50)
declare @disalt varchar(50)
declare @fc int
declare @lei varchar(50)
declare @pun varchar(50)
declare @team varchar(50)
--20100525
update #tmpa set team='Einzelstarter' where team like 'Einzelstarter%'
set @katalt=''
set @disalt=''
set @fc =0
declare xc cursor for select kategorie, disziplin from dbo.res_disziplin_select where ortnr=@resortnr and qw=1 order by kategorie, disziplin
open xc
fetch next from xc into @kat,@dis
while @@fetch_status=0 begin
if @kat<>@katalt begin
set @fc=0
set @katalt=@kat
end
if @dis<>@disalt
set @fc=@fc+1
declare xc1 cursor for select [name],[Jahrgang],[Lizenz],[Verein],[Kategorie_kurzname],[Kategorie],[Disziplin], best, bestpunkte, team
from #tmpa where kategorie_kurzname=@kat and disziplin=@dis
open xc1
fetch next from xc1 into @name, @jg, @lic, @verein, @kat_kurz, @kat, @dis1, @lei, @pun, @team
while @@fetch_status = 0 begin
set @cnt=(Select pk from #tmpr where name=@name and jahrgang=@jg and lizenz=@lic)
if @cnt=0 or @cnt is null begin
insert #tmpr ([name],[Jahrgang],[Lizenz],[Verein],[Kategorie_kurzname],[Kategorie],[Dis1],[Lei1],[Pun1],[Dis2],[Lei2],[Pun2],[Dis3],[Lei3],[Pun3],[Dis4],[Lei4],[Pun4],[Dis5],[Lei5],[Pun5],[Dis6],[Lei6],[Pun6],[Best], team)
values (@name, @jg, @lic, @verein, @kat_kurz, @kat, '','','','','','','','','','','','','','','','','','',0,@team)
set @cnt=(select top 1 pk from #tmpr order by pk desc)
end
if @fc=1 begin
update #tmpr set lei1=@lei,dis1=@dis1, pun1=@pun where pk=@cnt
end
if @fc=2 begin
update #tmpr set lei2=@lei,dis2=@dis1, pun2=@pun where pk=@cnt
end
if @fc=3 begin
update #tmpr set lei3=@lei,dis3=@dis1, pun3=@pun where pk=@cnt
end
if @fc=4 begin
update #tmpr set lei4=@lei,dis4=@dis1, pun4=@pun where pk=@cnt
end
if @fc=5 begin
update #tmpr set lei5=@lei,dis5=@dis1, pun5=@pun where pk=@cnt
end
if @fc=6 begin
update #tmpr set lei6=@lei,dis6=@dis1, pun6=@pun where pk=@cnt
end
fetch next from xc1 into @name, @jg, @lic, @verein, @kat_kurz, @kat, @dis1,@lei, @pun, @team
end
close xc1
deallocate xc1
if @fc=1 begin
update #tmpr set dis1=@dis1 where dis1='' and kategorie=@kat
end
if @fc=2 begin
update #tmpr set dis2=@dis1 where dis2='' and kategorie=@kat
end
if @fc=3 begin
update #tmpr set dis3=@dis1 where dis3='' and kategorie=@kat
end
if @fc=4 begin
update #tmpr set dis4=@dis1 where dis4='' and kategorie=@kat
end
if @fc=5 begin
update #tmpr set dis5=@dis1 where dis5='' and kategorie=@kat
end
if @fc=6 begin
update #tmpr set dis6=@dis1 where dis6='' and kategorie=@kat
end
fetch next from xc into @kat,@dis
end
close xc
deallocate xc
update #TMPR set best= CONVERT(int, Pun1) + CONVERT(int, Pun2) + CONVERT(int, Pun3) + CONVERT(int, Pun4) + CONVERT(int, Pun5) + CONVERT(int, Pun6)
declare @rkatalt varchar(50)
declare @rkat varchar(50)
declare @rpk int
declare @rang int
declare @rang1 int
declare @rbest int
declare @rbest1 int
set @rkatalt=''
set @rang=0
set @rang1=0
set @rbest=0
set @rbest1=0
declare xx cursor for select pk, kategorie_kurzname, convert(int, best) from #tmpr order by kategorie_kurzname, convert(int, best) desc
open xx
fetch next from xx into @rpk, @rkat, @rbest
while @@fetch_status = 0 begin
if @rkatalt<>@rkat begin
set @rkatalt=@rkat
set @rang=0
end
set @rang=@rang+1
if @rbest <> @rbest1 begin
set @rbest1=@rbest
set @rang1=@rang
end
update #tmpr set rang=@rang1 where pk=@rpk
fetch next from xx into @rpk, @rkat, @rbest
end
close xx
deallocate xx
declare @qw varchar(max)
declare @rangliste varchar(max)
declare xc cursor for
select qw, rangliste from Disziplin_Mapping
open xc
fetch next from xc into @qw,@rangliste
while @@FETCH_STATUS=0 begin
update #tmpr set dis1=@rangliste where dis1=@qw
update #tmpr set dis2=@rangliste where dis2=@qw
update #tmpr set dis3=@rangliste where dis3=@qw
update #tmpr set dis4=@rangliste where dis4=@qw
update #tmpr set dis5=@rangliste where dis5=@qw
fetch next from xc into @qw,@rangliste
end
close xc
deallocate xc
update #tmpr set pun4=0, lei4=0 where lei4=''
update #tmpr set pun3=0, lei3=0 where lei3=''
update #tmpr set pun2='0', lei2='0' where lei2=''
update #tmpr set pun1=0, lei1=0 where lei1=''
select * from #tmpr order by kategorie_kurzname, rang
--select * into _mehrkampf from #tmpr
drop table #tmpa
drop table #tmpr
return
ew:
print 'ew'
insert into #tmpa SELECT dbo._tmpres.Rang, dbo._tmpres.name, dbo._tmpres.Jahrgang, dbo._tmpres.Lizenz, dbo._tmpres.Verein, dbo._tmpres.Kategorie_kurzname, dbo._tmpres.Kategorie,
dbo._tmpres.Disziplin, dbo._tmpres.F0, dbo._tmpres.F1, dbo._tmpres.F2, dbo._tmpres.F3, dbo._tmpres.F4, dbo._tmpres.F5, dbo._tmpres.F6, dbo._tmpres.F7,
dbo._tmpres.Best, dbo._tmpres.BestPunkte, dbo._tmpres.Land, dbo._tmpres.hochversuch, dbo._tmpres.hochbest, dbo._tmpres.team
FROM dbo.Res_Disziplin_Select INNER JOIN
dbo._tmpres ON dbo.Res_Disziplin_Select.Disziplin = dbo._tmpres.Disziplin AND dbo.Res_Disziplin_Select.Kategorie = dbo._tmpres.Kategorie_kurzname
WHERE (dbo.Res_Disziplin_Select.eg = 1) AND (dbo.Res_Disziplin_Select.OrtNr = @resortnr)
declare @jj int
declare @pk int
declare @sjj varchar(2)
declare k cursor for
select pk, kategorie_kurzname, jahrgang from #tmpa
open k
fetch next from k into @pk, @kat, @jg
while @@fetch_status=0 begin
set @kat=substring(@kat,4,1)
set @jj=year(getdate())-@jg
if @jj<7 set @jj=7
set @sjj=LTRIM(rtrim(str(@jj)))
while LEN(@sjj) < 2 set @sjj='0'+@sjj
if @kat='M' set @kat='M'+@sjj else set @kat='W'+@sjj
update #tmpa set kategorie_kurzname=@kat where pk=@pk
fetch next from k into @pk, @kat, @jg
end
close k
deallocate k
set @katalt=''
set @disalt=''
set @fc =0
declare xc cursor for select distinct kategorie_kurzname, disziplin from #tmpa order by kategorie_kurzname, disziplin
open xc
fetch next from xc into @kat,@dis
while @@fetch_status=0 begin
if @kat<>@katalt begin
set @fc=0
set @katalt=@kat
end
if @dis<>@disalt
set @fc=@fc+1
declare xc1 cursor for select [name],[Jahrgang],[Lizenz],[Verein],[Kategorie_kurzname],[Kategorie],[Disziplin], best, bestpunkte, team
from #tmpa where kategorie_kurzname=@kat and disziplin=@dis
open xc1
fetch next from xc1 into @name, @jg, @lic, @verein, @kat_kurz, @kat, @dis1, @lei, @pun, @team
while @@fetch_status = 0 begin
set @cnt=(Select pk from #tmpr where name=@name and jahrgang=@jg and lizenz=@lic)
if @cnt=0 or @cnt is null begin
insert #tmpr ([name],[Jahrgang],[Lizenz],[Verein],[Kategorie_kurzname],[Kategorie],[Dis1],[Lei1],[Pun1],[Dis2],[Lei2],[Pun2],[Dis3],[Lei3],[Pun3],[Dis4],[Lei4],[Pun4],[Dis5],[Lei5],[Pun5],[Dis6],[Lei6],[Pun6],[Best],team)
values (@name, @jg, @lic, @verein, @kat_kurz, @kat, '','','','','','','','','','','','','','','','','','',0,@team)
set @cnt=(select top 1 pk from #tmpr order by pk desc)
end
if @fc=1 begin
update #tmpr set lei1=@lei,dis1=@dis1, pun1=@pun where pk=@cnt
end
if @fc=2 begin
update #tmpr set lei2=@lei,dis2=@dis1, pun2=@pun where pk=@cnt
end
if @fc=3 begin
update #tmpr set lei3=@lei,dis3=@dis1, pun3=@pun where pk=@cnt
end
if @fc=4 begin
update #tmpr set lei4=@lei,dis4=@dis1, pun4=@pun where pk=@cnt
end
if @fc=5 begin
update #tmpr set lei5=@lei,dis5=@dis1, pun5=@pun where pk=@cnt
end
if @fc=6 begin
update #tmpr set lei6=@lei,dis6=@dis1, pun6=@pun where pk=@cnt
end
fetch next from xc1 into @name, @jg, @lic, @verein, @kat_kurz, @kat, @dis1,@lei, @pun,@team
end
close xc1
deallocate xc1
if @fc=1 begin
update #tmpr set dis1=@dis1 where dis1='' and kategorie_kurzname=@kat_kurz
end
if @fc=2 begin
update #tmpr set dis2=@dis1 where dis2='' and kategorie_kurzname=@kat_kurz
end
if @fc=3 begin
update #tmpr set dis3=@dis1 where dis3='' and kategorie_kurzname=@kat_kurz
end
if @fc=4 begin
update #tmpr set dis4=@dis1 where dis4='' and kategorie_kurzname=@kat_kurz
end
if @fc=5 begin
update #tmpr set dis5=@dis1 where dis5='' and kategorie_kurzname=@kat_kurz
end
if @fc=6 begin
update #tmpr set dis6=@dis1 where dis6='' and kategorie_kurzname=@kat_kurz
end
fetch next from xc into @kat,@dis
end
close xc
deallocate xc
update #TMPR set best= CONVERT(int, Pun1) + CONVERT(int, Pun2) + CONVERT(int, Pun3) + CONVERT(int, Pun4) + CONVERT(int, Pun5) + CONVERT(int, Pun6)
set @rkatalt=''
set @rang=0
set @rang1=0
set @rbest=0
set @rbest1=0
declare xx cursor for select pk, kategorie_kurzname, convert(int, best) from #tmpr order by kategorie_kurzname, convert(int, best) desc
open xx
fetch next from xx into @rpk, @rkat, @rbest
while @@fetch_status = 0 begin
if @rkatalt<>@rkat begin
set @rkatalt=@rkat
set @rang=0
end
set @rang=@rang+1
if @rbest <> @rbest1 begin
set @rbest1=@rbest
set @rang1=@rang
end
update #tmpr set rang=@rang1 where pk=@rpk
fetch next from xx into @rpk, @rkat, @rbest
end
close xx
deallocate xx
update #tmpr set pun5=0, lei5=0 where lei5=''
update #tmpr set pun4=0, lei4=0 where lei4=''
update #tmpr set pun3=0, lei3=0 where lei3=''
update #tmpr set pun2='0', lei2='0' where lei2=''
update #tmpr set pun1=0, lei1=0 where lei1=''
declare @a varchar(50)
declare @b varchar(50)
declare @kat_kurzname varchar(50)
declare xc cursor for select distinct kategorie_kurzname from #tmpr
open XC
fetch next from xc into @kat_kurzname
while @@fetch_status=0 begin
set @a=''
select @a=dis1 from #tmpr where kategorie_kurzname=@kat_kurzname and dis1<>''order by dis1 desc
print @kat_kurzname + ':' + @a
if @a='' begin
update #tmpr set dis1='', lei1='',pun1='' where kategorie_kurzname=@kat_kurzname
end else begin
update #tmpr set dis1=@a where kategorie_kurzname=@kat_kurzname
end
set @a=''
select @a=dis2 from #tmpr where kategorie_kurzname=@kat_kurzname and dis2<>'' order by dis2 desc
if @a='' begin
update #tmpr set dis2='', lei2='',pun2='' where kategorie_kurzname=@kat_kurzname
end else begin
update #tmpr set dis2=@a where kategorie_kurzname=@kat_kurzname
end
set @a=''
select @a=dis3 from #tmpr where kategorie_kurzname=@kat_kurzname and dis3<>'' order by dis3 desc
if @a='' begin
update #tmpr set dis3='', lei3='',pun3='' where kategorie_kurzname=@kat_kurzname
end else begin
update #tmpr set dis3=@a where kategorie_kurzname=@kat_kurzname
end
set @a=''
select @a=dis4 from #tmpr where kategorie_kurzname=@kat_kurzname and dis4<>'' order by dis4 desc
if @a='' begin
update #tmpr set dis4='', lei4='',pun4='' where kategorie_kurzname=@kat_kurzname
end else begin
update #tmpr set dis4=@a where kategorie_kurzname=@kat_kurzname
end
set @a=''
select @a=dis5 from #tmpr where kategorie_kurzname=@kat_kurzname and dis5<>'' order by dis5 desc
if @a='' begin
update #tmpr set dis5='', lei5='',pun5='' where kategorie_kurzname=@kat_kurzname
end else begin
update #tmpr set dis5=@a where kategorie_kurzname=@kat_kurzname
end
fetch next from xc into @kat_kurzname
end
close xc
deallocate xc
declare xc cursor for
select qw, rangliste from Disziplin_Mapping
open xc
fetch next from xc into @qw,@rangliste
while @@FETCH_STATUS=0 begin
update #tmpr set dis1=@rangliste where dis1=@qw
update #tmpr set dis2=@rangliste where dis2=@qw
update #tmpr set dis3=@rangliste where dis3=@qw
update #tmpr set dis4=@rangliste where dis4=@qw
update #tmpr set dis5=@rangliste where dis5=@qw
fetch next from xc into @qw,@rangliste
end
close xc
deallocate xc
select * from #tmpr order by kategorie_kurzname, rang
drop table #tmpa
drop table #tmpr
END
GO
/****** Object: StoredProcedure [dbo].[res_set_disziplin_select] Script Date: 26.05.2021 06:45:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[res_set_disziplin_select]
@ortnr int
as
insert dbo.res_disziplin_select
(ortnr, kategorie, disziplin, qw, eg, bestenliste)
select distinct @ortnr as ortnr, kategorie_kurzname, disziplin, 0 as qw, 0 as eg, 0 as bestenliste
from dbo.res_resultate
where ortnr=@ortnr
GO