GROUP BY firmid ORDER BY Datum problem ebid er ausgabe... :(

Gudy

Erfahrenes Mitglied
Hi,
ich habe eine SQl abfrage die mit GROUP BY firmid ORDER BY Datum endet.
In der Tabelle stehen News drin. Hinter jeder firmid steckt einer Firma, die Firmid kann mehrmals in der tbl_news vorkommen.

Ich möchte jetzt für jede Firma das letzte Datum ermitteln. Aber da ich ja erst GROUP BY und dann Order BY machen kann, wird das erste datum ermittelt, wie mach ich das denn anders...?

THX
 
Original geschrieben von Gudy
Ich möchte jetzt für jede Firma das letzte Datum ermitteln.
Wenn du nur das willst, dann schreib doch
PHP:
SELECT firmid, Datum FROM tabelle t WHERE Datum=(SELECT MAX(subt.Datum) FROM tabelle subt WHERE t.firmid=subt.firmid)
*edit*: Ups, da fehlte noch was...:-(
 
Zuletzt bearbeitet:
Hi,
danke Gorcky aber was du da machst versteh ich nicht so ganz, unten ist mal mein beispiel, ist der ansatz total falsch? würde es lieber so machen wie ich es da schon habe, oder geht das nicht..


Code:
SELECT tbl_adresse.konid, tbl_adresse.maid, tbl_wiedervorlagen.konid ,tbl_wiedervorlagen.datum,tbl_wiedervorlagen.datum_stamp,tbl_wiedervorlagen.firmid,tbl_wiedervorlagen.txt FROM tbl_adresse INNER JOIN tbl_wiedervorlagen ON tbl_adresse.konid = tbl_wiedervorlagen.konid WHERE (tbl_adresse.maid = $matbl) GROUP BY firmid ORDER BY Datum DESC
 
Versuch's doch mal so:
PHP:
SELECT * FROM (SELECT tbl_adresse.konid, tbl_adresse.maid, tbl_wiedervorlagen.konid ,tbl_wiedervorlagen.datum,tbl_wiedervorlagen.datum_stamp,tbl_wiedervorlagen.firmid,tbl_wiedervorlagen.txt 
FROM tbl_adresse 
INNER JOIN tbl_wiedervorlagen ON tbl_adresse.konid = tbl_wiedervorlagen.konid 
WHERE (tbl_adresse.maid = $matbl) ORDER BY Datum DESC)
GROUP BY firmid
Hier legst du eine temporäre Tabelle an, aus der du dann erst ein GROUP BY machst.
Sollte es das noch nicht das gewünschte sein, beschreibe doch noch mal genauer, was du möchtest.

Du definierst übrigens einen Alias für einen Tabellennamen, indem du ihn hinter den Tabellennamen schreibst - z.B. so wie ich im vorigen Post.
Das macht dein Statement (eventuell) etwas übersichtlicher.

PS: und immer schön an die Nettiquette denken...:)
 
Hi,
danke erstmal für deine Tipps Gorcky aber es noch immer nicht... :(
Ist es in MySql denn überhaupt möglich erst
...ORDER BY...
und dann
...GROUP BY... durchzuführen?
Denn das hast du ja auch versucht und genau dadurch kommt glaub ich immer der Fehler.... :(

Aber um zu Zeigen was ich suche habe ich jezuz nochmal 2 Dateien Angehängt.
ich möchte:
- die Beiden Tabellen über Inner join verknüpfen (tbl_wiedervorlagen.konid = tbl_adressen.konid )
- die Datensätze ausgeben wo maid z.B = 6 ist
- und dann bitte So das immer nur der Datensatz ausgegeben wird wo das Datum das größte ist, in meinem Bsp. wäre es dann aus der tbl_wiedervorlagen 43 und 45


Gruß und danke
 

Anhänge

Zurück