Query
SQL初學者問題
我有一個表,如下所示,包含以下列:ClientID、PoNumber、Consignment_Number、Status
如您所見,單個客戶將有多個 PO 編號(採購訂單),每個 PO 將包含少量交貨。如果 PO 上有任何計劃的托運並且至少一個托運已完成狀態,我正在嘗試提取 PO 編號和所有托運編號的列表
我希望只看到綠色行作為最終輸出,
任何幫助,將不勝感激
一種選擇:
SELECT * FROM tablename WHERE poNumber IN (SELECT poNumber FROM tablename WHERE Status = 'Complete') AND poNumber IN (SELECT poNumber FROM tablename WHERE Status = 'Planned')
另一種選擇,理解起來有點複雜,而且成本更高(至少在我測試它的非常小的數據子集上):
SELECT * FROM @tablename WHERE poNumber IN (SELECT poNumber FROM @tablename GROUP BY ponumber HAVING COUNT(DISTINCT(Status)) > 1)