Hilfe bei Abfrage

14/09/2009 - 16:30 von Stefan Simon | Report spam
Hallo,

ich habe eine Tabelle mit folgendem Inhalt:

LabelID,Label,Language,CreateDZ
194, "Water tank", en, 14.09.2009 14:12:16
194, "water tank", en, 14.09.2009 14:12:23
195, "Waste tank", en, 14.09.2009 14:12:16
195, "waste tank", en, 14.09.2009 14:12:23
196, "Fuel Tank", en, 14.09.2009 14:12:16
196, "fuel tank", en, 14.09.2009 14:12:23

Ich möchte erreichen, dass für jede LabelID jeweils nur der neueste Eintrag
ausgegeben wird:
194, "water tank", en, 14.09.2009 14:12:23
195, "waste tank", en, 14.09.2009 14:12:23
196, "fuel tank", en, 14.09.2009 14:12:23

Das hier tuts nicht:
SELECT LabelID, Label, Language, CreateDZ
FROM S000_Translations
WHERE (Language = 'en') AND (LabelID < 90000)
GROUP BY CreateDZ, LabelID, Label, Language
HAVING (CreateDZ = MAX(CreateDZ))
ORDER BY LabelID

Wie muss die Abfrage korrekt lauten?

tia
Stefan
 

Lesen sie die antworten

#1 Elmar Boye
14/09/2009 - 18:02 | Warnen spam
Hallo Stefan,

Stefan Simon schrieb:

ich habe eine Tabelle mit folgendem Inhalt:

LabelID,Label,Language,CreateDZ
194, "Water tank", en, 14.09.2009 14:12:16
194, "water tank", en, 14.09.2009 14:12:23
195, "Waste tank", en, 14.09.2009 14:12:16
195, "waste tank", en, 14.09.2009 14:12:23
196, "Fuel Tank", en, 14.09.2009 14:12:16
196, "fuel tank", en, 14.09.2009 14:12:23

Ich möchte erreichen, dass für jede LabelID jeweils nur der neueste
Eintrag ausgegeben wird:
194, "water tank", en, 14.09.2009 14:12:23
195, "waste tank", en, 14.09.2009 14:12:23
196, "fuel tank", en, 14.09.2009 14:12:23

Das hier tuts nicht:
SELECT LabelID, Label, Language, CreateDZ
FROM S000_Translations
WHERE (Language = 'en') AND (LabelID < 90000)
GROUP BY CreateDZ, LabelID, Label, Language
HAVING (CreateDZ = MAX(CreateDZ))
ORDER BY LabelID

Wie muss die Abfrage korrekt lauten?



ungetestet, sollte aber passen:

SELECT LabelID, Label, Language, CreateDZ
FROM S000_Translations
WHERE (Language = 'en') AND (LabelID < 90000)
AND CreateDZ = (SELECT MAX(CreateDZ)
FROM S000_Translations AS tmax
WHERE S000_Translations.LabelID = tmax.LabelID)
ORDER BY LabelID

Gruß Elmar

Ähnliche fragen