Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

group problem

Empfohlene Antworten

Veröffentlicht

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

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.

hi,

select nr, max(datum) from test3 group by nr

sollte gehen.

hth

Die beiden Vorredner haben Recht.

Man benötigt eine "Groupfunction" um GROUP BY benutzen zu können. GFs sind z.B. SUM, COUNT, MAX, MIN usw.

  • Autor

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

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?

  • Autor

leider nein....

ich müßte alle nummern wissen (egal welches datum)

und dann noch zusätzlich wissen welche von diesen nummern das passende datum hat....

mit der where klausel weiß ich ja leider nicht alle nummern :(

Wie schon Byte erwähnte, wäre es nicht schlecht zu wissen mit welcher Datenbank du arbeitest ;)

Ich bin jetzt ein lein wenig verwirrt, wenn du nicht groupieren möchtest, da dort datensätze "wegfallen", mach doch einfach ein SELECT DISTINCT blalbla

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 ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.