Hallo liebe Datenbank freunde,
ich weiß nicht ob ihr das auch kennt ein Code der Tage und Wochen super lief, will von heute auf morgen plötzlich nicht mehr das tun wofür er gedacht ist. So geht es mir. Obwohl sich nichts an der Umgebung verändert will der Code nicht mehr im letzten Teil die letzte mit der Vorletzten Spalte addieren.
Habt Ihr eine Idee woran das liegen könnte?
Hier der Code:
ich weiß nicht ob ihr das auch kennt ein Code der Tage und Wochen super lief, will von heute auf morgen plötzlich nicht mehr das tun wofür er gedacht ist. So geht es mir. Obwohl sich nichts an der Umgebung verändert will der Code nicht mehr im letzten Teil die letzte mit der Vorletzten Spalte addieren.
Habt Ihr eine Idee woran das liegen könnte?
Hier der Code:
Code:
Truncate Table dbo.tmp
--------------------------------------------------
DECLARE @kopf varchar(100),
@query1 VARCHAR(2000),
@query2 VARCHAR(8000),
@ordinal INT,
@tabelle VARCHAR(100),
@letzte_spalte VARCHAR(100),
@vorletzte_spalte VARCHAR(100),
@query3 VARCHAR(8000)
SET @kopf = (Select Case When DateName(dw,GetDate()) = 'Montag'
Then 'Saldo vom ' + Convert([nvarchar](10),DateAdd(day,-3,GetDate()),104)
Else 'Saldo vom ' + Convert([nvarchar](10),DateAdd(day,-1,GetDate()),104) End)
SET @query1 =
'Insert into dbo.tmp
Select
[Kontenart]
, Cast([Saldo] as money) as tmp
--into dbo.tmp
From dbo.[S_92591]
Where [wBuch_Buchung_am] = Case When DateName(dw
, GetDate()) = ''Montag'' Then Convert([nvarchar](10),DateAdd(day
, -3
, GetDate()),104) Else Convert([nvarchar](10),DateAdd(day
, -1
, GetDate()),104) End
And [wBuch_jahr] = Year(GetDate())
Order by [Kontenart] ASC'
EXEC(@query1)
--Select * from dbo.tmp
--------------------------------------------------
Truncate Table dbo.tmp2
Insert into dbo.tmp2
select Concat(kontenart, gruppe) as Kontenart, sum("tmp") as tmp --into dbo.tmp2
from
(select kontenart, substring(kontenart,1,2) as gruppe, "tmp" from dbo.tmp) foo group by grouping sets ((kontenart),(gruppe))
--Select * from dbo.tmp2
Drop Table dbo.tmp3
--Insert into [tmp3]
SELECT ISNULL(dbo.tmp2.Kontenart, [S_92660].Kontenart) AS Kontenarten, [S_92660].*,
ISNULL(dbo.tmp2.tmp, 0) AS tmpx into dbo.tmp3
FROM [S_92660] FULL OUTER JOIN
dbo.tmp2 ON [S_92660].Kontenart = dbo.tmp2.Kontenart
-- Select * from dbo.tmp3
Alter Table dbo.tmp3 Drop Column Kontenart
EXEC sp_rename 'dbo.tmp3.Kontenarten', 'Kontenart', 'COLUMN'
SET @tabelle = 'dbo.tmp3'
SET @ordinal = ( SELECT max(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle )
SET @letzte_spalte = ( SELECT max(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle AND ORDINAL_POSITION = @ordinal )
SET @vorletzte_spalte = ( SELECT distinct COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle AND ORDINAL_POSITION = @ordinal - 1 )
SET @query3 = 'UPDATE [' + @tabelle + '] SET tmpx = isnull([' + @letzte_spalte + '],0) + isnull([' + @vorletzte_spalte + '],0)'
EXEC(@query3)