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!