svenw 0 Geschrieben 29. Oktober 2015 Melden Geschrieben 29. Oktober 2015 (bearbeitet) Moin, kann mir jemand sagen ob ich dieses Script einfacher hinbekomme? declare @Liste as nvarchar(max) declare @aListe as nvarchar(150) declare @bListe as nvarchar(150) declare @value as nvarchar(150) declare @SQL_Liste as nvarchar(max) declare @SQL_Mitte as nvarchar(max) declare @SQL_Anfang as nvarchar(max) declare @SQL_Ende as nvarchar(max) declare @date as nvarchar(150) select @date = '12.08.2015' drop table ##test SET @Liste = '' SET @aListe = ' Select @Liste = @Liste + ' SET @bListe = ' from (select distinct value from dbo.test where [test1] = ''muster'') v' SET @value = ' + [value] + ' SET @SQL_Anfang = 'WITH WeekDays AS (SELECT DATEADD(ww, DATEDIFF(ww, 0, '''+ @date +''') - (DATEPART(wk, '''+ @date +''') - DATEPART(isowk, '''+ @date +''')), 0) DayValue UNION ALL SELECT DayValue + 1 FROM WeekDays WHERE DayValue + 1 <= DATEADD(ww, DATEDIFF(ww, 0, '''+ @date +''') - (DATEPART(wk, '''+ @date +''' ) - DATEPART(isowk, '''+ @date +''')), 6)) SELECT convert (nvarchar ,DayValue,104) as Datum, Datename(weekday,DayValue)as Wochentag ,' SET @SQL_liste = @aListe + '''Case '''''''+ @value + '''''''when '''''''+ @value + ''''''' then (select count([Test3]) FROM [dbo].[test] where [test1] = '''''''+ @value + '''''''and [CreatedOn] >= DayValue and [CreatedOn] <= DayValue + 1) else 0 end as '''''''+ @value + ''''''',''' + @bListe SET @SQL_Mitte = '' EXEC sp_executesql @SQL_Liste, N'@Liste nvarchar(max) OUTPUT', @Liste = @SQL_Mitte OUTPUT SET @SQL_Ende = 'DATEPART(isowk, '''+ @date +''') AS KW into ##Ausgabe FROM WeekDays' EXEC (@SQL_Anfang + @SQL_Mitte + @SQL_Ende) select * from ##Ausgabe; bearbeitet 29. Oktober 2015 von svenw
ukulele 11 Geschrieben 2. November 2015 Melden Geschrieben 2. November 2015 Du kannst mit weniger Variablen arbeiten, das ist aber auch schon alles. Was willst du sonst beim zusammenkleben von Code vereinfachen? Oder bezieht sich deine Frage auf das zusammengebaute Query? Das könnte man dann ja auch direkt und formatiert posten..
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden