[英]Cross table SQL Query to exclude from results records based on keyword
這是一個抓頭人(對我來說)...
我有兩個表A和B。A包含產品說明,B包含產品代碼,數量和科目。 這里的缺點是B在產品代碼上具有父子關系。
我想做的是將一個結果集放在一起,在其中我看到“帳戶”,“產品”,“描述”和“數量”,其中一個產品“數量” = 0,除非產品的“描述”中有一個關鍵字(我的“數量”不關心)。
所以,這是我現在的查詢:
SELECT Bp.Account, Bp.Product, A.Description, Bp.Qty FROM B
AS Bp JOIN A as Prod ON (Bp.Product = Prod.Product)
WHERE EXISTS (Select * from B AS Bc
WHERE Bp.Account = Bc.Account
AND Qty = 0)
這將返回一個非常好的結果集:
Account Product Description Qty
ABC XYZ DESC-BLAH 1
ABC XYY DESC-DEE 0
ABC ZXY DESC-BILP 1
BDE XAZ DESC-OOPS 1
BDE XYY DESC-DEE 0
BDE ZXY DESC-BLIP 1
因此,可以說我想從結果集中排除DESC-OOPS以及與之相關的所有產品。 我想看看:
Account Product Description Qty
ABC XYZ DESC-BLAH 1
ABC XYY DESC-DEE 0
ABC ZXY DESC-BILP 1
這可以在單個查詢中完成嗎?
提前謝謝了!
也許您可以添加您的WHERE條件:
SELECT Bp.Account, Bp.Product, A.Description, Bp.Qty FROM B
AS Bp JOIN A as Prod ON (Bp.Product = Prod.Product)
WHERE EXISTS (Select * from B AS Bc
WHERE Bp.Account = Bc.Account
AND Qty = 0)
AND Bp.ACCOUNT NOT IN (SELECT ACCOUNT FROM Table WHERE Description = 'DESC-OOPS'
我不確定為什么這對您不起作用,但是也許:
SELECT *
FROM (SELECT Bp.Account, Bp.Product, A.Description, Bp.Qty
FROM B AS Bp
JOIN A as Prod
ON (Bp.Product = Prod.Product)
WHERE EXISTS (Select * from B AS Bc
WHERE Bp.Account = Bc.Account
AND Qty = 0)
)sub
WHERE ACCOUNT NOT IN (SELECT ACCOUNT FROM Table WHERE Description = 'DESC-OOPS'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.