Hi,
ich habe folgendes Problem:
Ich möchte mir von unseren Bestellungen nur die neuesten Bestellungen zu einem Artikel anzeigen lassen, und das Datum des dazugehörigen Wareneingangs.
Nicht immer kommt bei zwei Bestellungen zu ein und demselben Artikel auch der Wareneingang in der zeitlichen Folge wie man es logischerweise erwarten würde. Manchmal kommt erst der Wareneingang der älteren Bestellung und dann der WE der Neueren. Das mag sehr selten vorkommen, aber trotzdem muss ich das bei dieser Abfrage ausschließen können. Das Datum des WE muss also zur jeweiligen Bestellung passen.
Beispiel:
Artikelnr Bestellnr WE-Datum
43177377-004 8450 09.02.2017
43177377-004 8403 11.02.2017
Meine Abfrage lautet im Moment:
PHP-Code:
SELECT
MAX(`tabvalvebestellungartikel`.`Bestellnr`) AS `Bestellnr`,
`tabvalvebestellungartikel`.`Artikelnr` AS `Artikelnr`,
max(`tabvalvewe`.`WEDatum`) AS `wedatum`
FROM
((`tabvalvebestellungartikel`
LEFT JOIN `tabvalveweartikel` ON ((`tabvalveweartikel`.`WEBAnu` = `tabvalvebestellungartikel`.`BANu`)))
LEFT JOIN `tabvalvewe` ON ((`tabvalveweartikel`.`WEnr` = `tabvalvewe`.`WEnr`)))
WHERE
((`tabvalvebestellungartikel`.`MengeGeliefert` = `tabvalvebestellungartikel`.`MengeB`))
GROUP BY `tabvalvebestellungartikel`.`Artikelnr`
ORDER BY `tabvalvebestellungartikel`.`Artikelnr` , `tabvalvebestellungartikel`.`Bestellnr` DESC
Aber damit wird das beschriebene Problem nicht berücksichtigt vermute ich. Es wird von beiden Spalten der Maximalwert angezeigt. Wenn ich das "max" beim Datum weglasse wird aber auch nicht das passende Datum zur dann aufgeführten Bestellnr angezeigt.
Wie geht es denn richtig?