Fehlerhafte Abfrage in SQL 2000; funktioniert in 2008

04/06/2009 - 18:31 von oliver.dupp | Report spam
Hallo

Brauche für SQL2000 Anwender noch diese Abfrage die unter 2008 làuft aber
unter 2000 eine Fehlermeldung bringt (SQL2000 SP4)
-
Select
Jahr = Year(LIEFDAT),
Januar = (Select Sum(LAENGE)from XSEILFE
where Month(LIEFDAT)='1'
and Year(SEILFE.LIEFDAT)= year(S1.LIEFDAT))
/****
dto. bis Dezember
*****/
from SEILFE S1
group by Year(LIEFDAT)
order by Year(LIEFDAT)


Fehler lautet:
Server: Nachr.-Nr. 8624, Schweregrad 16, Status 21, Zeile 1
Interner SQL Server-Fehler.

Ich weis es liegt am SUBselect, bin aber am verzweifeln, wie ich das
hinbekomme. Vielleicht kann mir da jemand weiterhelfen. Danke !
 

Lesen sie die antworten

#1 Stefan Hoffmann
04/06/2009 - 18:53 | Warnen spam
hi Oliver,

oliver.dupp schrieb:
Brauche für SQL2000 Anwender noch diese Abfrage die unter 2008 làuft aber
unter 2000 eine Fehlermeldung bringt (SQL2000 SP4)
-
Select
Jahr = Year(LIEFDAT),


Warum nicht

SELECT Year(LIEFDAT) AS Jahr, ...

?

Januar = (Select Sum(LAENGE)from XSEILFE
where Month(LIEFDAT)='1'


Hmm, liefert Month() nicht eine Zahl? Ist imho ein unnötiger Cast.

and Year(SEILFE.LIEFDAT)= year(S1.LIEFDAT))


Der AND-Teil der Bedingung macht keinen Sinn, da er immer wahr ist.

from SEILFE S1
group by Year(LIEFDAT)
order by Year(LIEFDAT)




mfG

Ähnliche fragen