Ich versuche, meinen Kopf heute Morgen um diesen einen zu wickeln.SQL-Rätsel, wie das späteste Datum für Teil auswählen, aber nur 1 Reihe pro Teil (einzigartig)
Ich versuche, inventory
Status für Teile (für unsere Produkte) zu zeigen, und diese Abfrage wird nur komplex, wenn ich versuche, alle Teile zurückzugeben.
Lassen Sie es mich auslegen:
- einzige Tabelle
inventoryReport
- Ich habe eine eindeutige Liste von X Teilen I angezeigt werden soll, wobei das Ergebnis davon X Anzahl der Zeilen sein muß (1 Zeile pro Teil zeigt den letzten Inventareintrag).
- Tabelle enthält veraltete Einträge von Bestandsänderungen (so brauche ich nur die
LATEST
Datumseingabe pro Teil). - alle Daten in dieser Tabelle enthalten, so dass keine Joins erforderlich sind.
Zeit für 1 Einzelteil, ist es ziemlich einfach ist, und ich kann dies erreichen, indem Sie die folgende SQL tun (Ihnen eine Vorstellung 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
, die mir Reihe meiner TOP 1 bekommt, so einfach pro Teil, aber ich muss alle X zeigen (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 loopen (aber es wäre teuer), und das würde ausreichen, aber zu diesem Zweck würde ich gerne dieses SQL etwas mehr bearbeiten, um die x # -Aufrufe zurück auf die db zu reduzieren (wenn nicht benötigt) bis zu 1 Abfrage.
Von dem, was ich hier sehen kann, muss ich irgendwie auf der Suche nach meinem Ergebnis-Set das aktuelle Datum pro Stück verfolgen.
würde ich schließlich tun ein
WHERE ldPart in ('ABC123', 'BFD21', 'AA123', etc)
die Teile zu begrenzen, was ich brauche. Hoffentlich machte ich meine Frage klar genug. Lass es mich wissen, wenn du eine Idee hast. Ich kann keine DISTINCT
tun, da die Zeilen nicht die selben sind, das Datum muss das späteste sein, und ich benötige ein Maximum von X Reihen.
Gedanken? Ich bin fest ...