Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hallo leute... hab folgendes problem

create table test3(Nr SMALLINT, Datum Date);

daten hab ich so eingefügt...

insert into test3 VALUES (1,'2003-09-24');

insert into test3 VALUES (1,'2003-09-23');

insert into test3 VALUES (1,'2003-09-25');

insert into test3 VALUES (2,'2003-09-24');

insert into test3 VALUES (2,'2003-09-23');

insert into test3 VALUES (2,'2003-09-25');

mein problem sieht folgendermaßen aus...

ich bräuchte alle Nummern, + das größte datum was diese Nr besitzt....

ich hätte es folgendermaßen probiert

select * from test3 group by nr;

aber da krieg ich immer bei datum immer "2003-09-24" als ergebnis....

wie kann ich jede nr nur einmal bekommen, und zwar den datensatz mit dem größten datum?

Wär super wenn ihr mir helfen könntet..

Danke swordMaster

Geschrieben

Hast du es mal mit

SELECT Nr, max(Datum) FROM Table1 GROUP BY Nr, Datum

max gibt den grössten Wert bei einer Gruppierung zurück, ich konnte allerdings nicht testen ob das auch bei Datumsfeldern hilft.

Ausserdem weiss ich nicht ob es zum CoreSQL gehört und von jeder DB unterstützt wird. Ich persönlich arbeite mit MS SQL Server.

Geschrieben

leider reicht es mir jetzt dcoh nicht das größte datum zu bekommen....

ich müßte direkt abfragen ob für die gewünschte nummer ein BESTIMMTES datum gespeichert ist =>

habs mit

SELECT *,if (Datum='2003-09-24', ‘ja’, ’nein’) AS aktuell from test3

versucht... und funktioniert auch

jedoch bekomme ich jede nummer öfter als ergebnis

also hab ichs mal wieder gruppiert

SELECT *,if (Datum='2003-09-24', ‘ja’, ’nein’) AS aktuell from test3 group by nr

jedoch fällt mir dann wieder der gewünschte datensatz beim groupieren weg *verzweifel*

mit max(aktuell) kann ich nicht arbeiten (selbst wenn ich mit 0, 1) arbeiten würde, da er immer sagt:

ERROR 1054: Unknown column 'aktuell' in 'field list'

habt ihr noch ne idee?

Wär echt super

thx. SwordMaste

Geschrieben

du willst also alle nr mit einem bestimmten wert in der spalte datum haben?

select nr from test3 where datum = 'datums_wert'

liefert dir alle nr, zu welchen ein datum datums_wert existiert. oder hab ich jetzt was falsch verstanden?

Geschrieben

Bin mir jetzt leider nicht ganz sicher, ob MySQL Subqueries unterstützt, aber wenn ja, dann sollte diese Möglichkeit funzen:

SELECT DISTINCT NR,(SELECT DATUM FROM TEST3 WHERE NR = A.NR AND DATUM = '24.09.03') AS AKTUELLES_DATUM FROM TEST3 AS A

So bekommst du alle Nummern und in der Spalte Datum eben das passende Datum oder NULL, wenn's nicht existiert...

Alternativ wäre folgendes denkbar:

SELECT DISTINCT A.NR,B.DATUM FROM TEST AS A LEFT OUTER JOIN TEST AS B ON (A.NR = B.NR AND B.DATUM = '24.09.03')

Das sollte auch gehen!

Alle Angaben sind aber ohne Gewähr ;)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...