SQL Rätsel, wie man das späteste Datum für einen Teil auswählt, aber nur 1 Zeile pro Teil (eindeutig)
ch versuche heute morgen, meinen Kopf darum zu wickel
Ich versuche zu zeigen,inventory
Status für Teile (für unsere Produkte) und diese Abfrage wird nur dann komplex, wenn ich versuche, alle Teile zurückzugeben.
Lass es mich auslegen:
single tableinventoryReport
Ich habe eine eindeutige Liste von X Teilen, die ich anzeigen möchte. Das Ergebnis muss eine X-Zeilenzahl sein (1 Zeile pro Teil mit dem letzten Inventareintrag).table besteht aus datierten Einträgen von Inventaränderungen (daher brauche ich nur dasLATEST
Datumseingabe pro Teil). Alle Daten in dieser einzelnen Tabelle, daher sind keine Verknüpfungen erforderlich.erzeit ist es für 1 Einzelteil ziemlich einfach, und ich kann dies erreichen, indem ich den folgenden SQL-Code verwende (um Ihnen eine Vorstellung zu geben):
SELECT TOP (1) ldDate, ptProdLine, inPart, inSite, inAbc, ptUm, inQtyOh + inQtyNonet AS in_qty_oh, inQtyAvail, inQtyNonet, ldCustConsignQty, inSuppConsignQty
FROM inventoryReport
WHERE (ldPart = 'ABC123')
ORDER BY ldDate DESC
das bringt mir meine TOP 1 Reihe, so einfach pro Teil, aber ich muss alle X anzeigen (sagen wir 30 Teile). Also brauche ich 30 Zeilen, mit diesem Ergebnis. Natürlich wäre die einfache Lösung, X # von SQL-Aufrufen in meinem Code zu schleifen (aber es wäre kostspielig), und das würde ausreichen, aber zu diesem Zweck würde ich diese SQL gerne noch etwas weiter bearbeiten, um die x # -Aufrufe zurück an die Datenbank zu reduzieren (falls nicht benötigt) auf nur 1 Abfrage.
Nach allem, was ich hier sehen kann, muss ich irgendwie das aktuelle Datum pro Artikel verfolgen, während ich nach meiner Ergebnismenge suche.
Ich würde letztendlich ein @ mach
WHERE ldPart in ('ABC123', 'BFD21', 'AA123', etc)
, um die Teile zu begrenzen, die ich brauche. Hoffentlich habe ich meine Frage klar genug formuliert. Lass es mich wissen, wenn du eine Idee hast. Ich kann kein @ machDISTINCT
Da die Zeilen nicht identisch sind, muss das Datum das neueste sein und ich benötige maximal X Zeilen.
Gedanken? Ich stecke fest..