Declare funktion bringt Excel Query zum absturz?

Hallo Zusammen

Ich hab mir folgende Query zusammengestellt. Der Query Assistent im Excel zeigt die Daten auch korrekt an aber sobald ich die Daten an Excel zurück geben will stürzt mir Excel ab.

go
– Declare the variable to be used.
DECLARE @EffTage float(24);
DECLARE @TheoTage float(24);
DECLARE @Berechnung float(24);
DECLARE @First smalldatetime;

– Initialize the variable.
SET @First = (cast(year(getdate()) * 10000 + 1 * 100 + 1 as char(8)))
SET @EffTage = (select datediff(day,(@First-1),getdate()))
SET @TheoTage = (select case when month(getdate()) = 1 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 1, @First) - 1, 104))))
when month(getdate()) = 2 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 2, @First) - 1, 104))))
when month(getdate()) = 3 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 3, @First) - 1, 104))))
when month(getdate()) = 4 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 4, @First) - 1, 104))))
when month(getdate()) = 5 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 5, @First) - 1, 104))))
when month(getdate()) = 6 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 6, @First) - 1, 104))))
when month(getdate()) = 7 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 7, @First) - 1, 104))))
when month(getdate()) = 8 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 8, @First) - 1, 104))))
when month(getdate()) = 9 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 9, @First) - 1, 104))))
when month(getdate()) = 10 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 10, @First) - 1, 104))))
when month(getdate()) = 11 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 11, @First) - 1, 104))))
when month(getdate()) = 12 then (select datediff(day,@First-1,(convert(smalldatetime, dateadd(mm, 12, @First) - 1, 104))))
end)
SET @Berechnung = ((1 / @TheoTage )* @EffTage)
select
x0.Artikelnr
,x0.Bezeichnung
,Angefragte_Totalmenge_VJ = (select sum(a.Menge_bestellt) from Auftragspos a left outer join auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(b.Erfassungsdatum)=Year(DateAdd(year,-1,getdate())) and b.belegart like ‚A‘ )
,Anz_Anfr_Total_VJ = (select count(distinct a.belegnr) from Auftragspos a left outer join auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(b.Erfassungsdatum)=Year(DateAdd(year,-1,getdate())) and a.belegart like ‚A‘ )
,Anz_Anfr_Offen_VJ = (select count(distinct a.belegnr) from Auftragspos a left outer join Auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(b.Erfassungsdatum)=Year(DateAdd(year,-1,getdate())) and a.belegart like ‚A‘ and (b.angebotstatus like ‚0‘ or b.angebotstatus is null) )
,Anz_Anfr_Gebucht_VJ = (select count(distinct a.belegnr) from Auftragspos a left outer join Auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(b.Erfassungsdatum)=Year(DateAdd(year,0,getdate())) and a.belegart like ‚A‘ and b.angebotstatus like ‚1‘)
,Anz_Anfr_Verloren_VJ= (select count(distinct a.belegnr) from Auftragspos a left outer join Auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(b.Erfassungsdatum)=Year(DateAdd(year,-1,getdate())) and a.belegart like ‚A‘ and b.angebotstatus like ‚2‘)
,Anz_Anfr_Überarbeitet_VJ = (select count(distinct a.belegnr) from Auftragspos a left outer join Auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(b.Erfassungsdatum)=Year(DateAdd(year,-1,getdate())) and a.belegart like ‚A‘ and b.angebotstatus like ‚3‘)
–Auf Lieferdatum belassen
,Anz_Aufträge_VJ = (select count(distinct a.belegnr) from Auftragspos a left outer join Auftragskopf b on a.belegnr = b.belegnr where x0.artikelnr = a.Artikelnr and Year(a.lieferdatum)=Year(DateAdd(year,-1,getdate())) and a.belegart not in (‚A‘,‚G‘) )
–Verbrauchsrechnung
,Verbrauch_VJ = (Select (sum(a.Menge)*-1) from lagerjournal a where x0.artikelnr = a.artikelnr and a.typ =‚1‘ and Year(a.datum)=Year(DateAdd(„m“,-1,getdate())))
,ØVerbrauch_VJ_pro_Monat = (Select (sum(a.Menge)*-1) from lagerjournal a where x0.artikelnr = a.artikelnr and a.typ =‚1‘ and Year(a.datum)=Year(DateAdd(„m“,-1,getdate()))) /12
from artikel x0
where
left (gruppe,3) in (‚101‘)
order by artikelnr
go

Das „Go“ in Excel nicht funktioniert hab ich schon heraus gefunden aber warum Excel da nicht mehr mitmacht versteh ich nicht. Hoffe Ihr könnt mir weiterhelfen!

Versuche die Abfrage so zu gestalten das ein User nur die Datenverbindungen aktualisieren muss um alle Informationen die er braucht zu erhalten.

Schonmal dank fürs Durchlesen!

Kürzer Formuliert

declare @test int
set @test = 2
select @test

Funktioniert in Microsoft SQL Server Management Studio und im Excel gibt der Query auch die Zahl 2 aus aber er gibt es nicht an Excel weiter, es steht nur ‚Abfrage von Pe_Produktiv_DB04_1‘

Kann mir jemand beibringen wie man dies lösen kann?

Danke & Gruss!