如果之前已经问过这个问题,但是大多数类似的例子我只看到过两个表格,我很难适应我的情况。SQL Server:根据来自其他两个表的子查询从表中选择
我有一个查询选择产品编号和表产品列表测量单位那是不是在另一个表,PriceFile:
SELECT DISTINCT Prod_Num, [PriceFile].UM FROM [dbo].[PriceFile]
LEFT JOIN [dbo].[ProductList]
ON [PriceFile].Prod_Num = [ProductList].Product
WHERE [ProductList].Product IS NULL
与当前的数据表,这为我提供这个:
Prod_Num UM
13717 HC
我现在需要使用t他导致此查询的查询第三个表,产品,我尝试这样做:
SELECT DISTINCT ProductID AS proCode,Prod_Desc AS proName,
UPC_Code AS proBarCode,UM_SOLDBY AS untCode
FROM [dbo].[Products]
WHERE ProductID IN
(
SELECT DISTINCT Prod_Num, [PriceFile].UM FROM [dbo].[PriceFile]
LEFT JOIN [dbo].[ProductList]
ON [PriceFile].Prod_Num = [ProductList].Product
WHERE [ProductList].Product IS NULL
)
但当然,这给我的错误:
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
而且我不知道该从哪里出发。如果我更改子查询以便它只有Prod_Num,我会得到产品号我正在寻找,但我同时获得了对于它存在于产品表中。
proCode untCode
13717 DZ
13717 HC
而我只想要HC作为UM的线。
就像我说过的,我尝试过多种加入方式或在哪里存在,但是第三个表格方面却让我失望。
任何帮助将不胜感激。
恭喜! :) :) :) :) – LONG