【发布时间】:2010-06-07 13:09:04
【问题描述】:
我有一个复杂的查询要写,但无法弄清楚
这是我的桌子
销售 -- 系统中的每笔销售都有一行
SaleProducts -- 发票中的每一行都有一行(类似于 NW 中的 OrderDetails)
交易 -- 销售可能有权获得的可能交易/优惠列表
DealProducts -- 为达成交易而必须购买的产品数量列表
现在我正在尝试进行查询,该查询将告诉我每次销售他可能会获得哪些交易
相关字段为:
销售:SaleID (PK)
SaleProducts:SaleID (FK)、ProductID (FK)
优惠:DealID (PK)
DealProducts: DealID(FK), ProductID(FK), Mandatories (int) for required qty
我相信我应该能够使用某种交叉连接或外连接,但它不起作用
这是一个示例(我尝试了大约 30 种)
SELECT DealProducts.DealID, DealProducts.ProductID, DealProducts.Mandatories,
viwSaleProductCount.SaleID, viwSaleProductCount.ProductCount
FROM DealProducts
LEFT OUTER JOIN viwSaleProductCount
ON DealProducts.ProductID = viwSaleProductCount.ProductID
GROUP BY DealProducts.DealID, DealProducts.ProductID, DealProducts.Mandatories,
viwSaleProductCount.SaleID, viwSaleProductCount.ProductCount
问题在于它没有显示任何未完成的产品交易(可能是因为 ProductID 加入)。我还需要显示没有要求的销售,然后我可以过滤掉此查询中存在的任何 SaleID where AmountBought < Mandatories 等
感谢您的帮助
【问题讨论】: