Ich versuche, einen Parameter einer Tabelle als Kriterium für sich selbst zu verwenden, und kann meine SQL-Anweisung nicht richtig erhalten. Es scheint eine relativ einfache Abfrage zu sein; Ich verwende eine Unterabfrage für meine Kriterien, aber es filtert keine anderen Zeilen in meiner Tabelle aus.SQL: Verwenden einer Tabelle als Kriterium für sich selbst
Hintergrund:
Fertigung Produktionshalle: Ich habe eine Reihe von Maschinisten auf ihre Maschinen jetzt eine Operation (OprSeq) eines Auftrags (JobNum) ausgeführt wird. Von der LaborDtl-Tabelle, die alle Arbeitsaktivitäten aufzeichnet, kann ich sehen, welche Arbeit gerade aktiv ist (ActiveTrans = 1). Mit diesem Kriterium der aktiven Arbeit möchte ich alle früheren Arbeitsverhältnisse bei jedem aktiven Arbeitseinsatz zusammenfassen. Also brauche ich eine LaborDtl Tabelle der inaktiven Arbeitstätigkeit mit den Kriterien der aktiven Arbeit aus der gleichen Tabelle.
Der Code:
Heres subquery meine 'Kriterien':
SELECT
LaborDtl.JobNum,
LaborDtl.OprSeq
FROM Erp.LaborDtl
WHERE LaborDtl.ActiveTrans = 1
Welche aktiven Transaktionen gibt, ist hier das erste Paar (von Job sortiert):
Job Operation
000193 90
000457 70
000457 70
020008-1 140
020008-2 130
020010 60
020035 130
020175 40
020175-2 50
020186 80
020199 10
020203 50
020212 40
020258 60
020272 10
020283 30
020298 10
020299 30
Dann Hier ist die vollständige SQL-Anweisung mit der obigen Abfrage eingebettet:
Ich erwarte, dass nur die Job- und Vorgangsnummern in meiner Unterabfrage angezeigt werden, aber ich erhalte sowohl Aufträge als auch Vorgänge, die in meiner Unterabfrage nicht vorhanden sind. Hier sind die ersten 10 (beachten Sie, das erste JobNum 000.193 pro meine Kriterien sein sollte)
JobNum Op Total Labor
0 0.00000000
000004 1 32.00000000
000019 1 106.00000000
000029 1 175.00000000
000143 1 85.00000000
000164 1 58.00000000
000181 1 500.00000000
000227 1 116.00000000
000421 1 154.00000000
000458 1 67.00000000
Super! Tolle Erklärung, ich wusste nicht, dass ich mich der verschachtelten Unterabfrage anschließen muss. Aber ich mag deine alternative Lösung noch besser! Ich habe noch die "Having" -Anweisung, ein weiteres Wort für den SQL-Tool-Gürtel - Danke für den Tipp. –