Ich versuche, eine Abfrage, die eine Liste der Teile zurückgibt, wo alle Flags für diesen einen Teil falsch sind, und die zurückgegebene Liste sollte nur einen Datensatz zurückgegeben haben dieser Teil.Return 1 Record, wenn alle für ID ID
Part Revision Flag
Part1| A | true
Part1| B | false
Part2| C | false
Part2| D | false
Part2| E | false
Part3| A | true
Part4| F | false
Ausgang:
Part Revision Flag
Part2| C(or any other revision) | false
Part4| F | false
Teil1 und Teil3 haben mindestens 1-Flag auf true gesetzt, so dass sie nicht bekommen, ausgegeben. Part2 und 4 haben keine Flags, die auf "true" gesetzt sind, und Part2 gibt nur eine Zeile für alle zurück.
SELECT DISTINCT [PartNum],[RevisionNum],[Flag]
FROM [Prod].[Erp].[PartRev]
WHERE RevisionNum is not null AND Approved = 0
ORDER BY PartNum
GROUP BY [PartNum],[RevisionNum],[Flag]
Bisher kann ich eine Zeile pro Teilnummer bekommen, aber es wird nur eine Zeile zurückgeben, auch wenn eine der anderen für diese Teilnummer wahr ist.
Was wird zurückgegeben:
Part Revision Flag
Part1| B | false
Part2| C | false
Part4| F | false
Wer weiß, wie dieses Problem beheben?
Was? [tag: rdbms] verwendest du? – Mureinik
benötigen Sie möglicherweise eine Unterabfrage oder eine selbstverweisende Verknüpfung, um nach positiven Zeilen für die gleiche Teil-ID zu suchen. Oder in Abhängigkeit von Ihrem RDBMS gibt es möglicherweise einen besseren Weg – ADyson
@Mureinik Sql Server Management Studio – bubbajake00