我已经构建了一个查询,列出了今年在该公司销售的前100个SKU。我们销售超过650件商品,这个商品的尺寸有多种变化,总计约15,000个SKU我试图写一个查询,显示完全由前100个SKU订单,但我能得到的订单是在前100名中包含一个SKU。
以下是我的SQL语句
SELECT
Year([DATE_FLD]) AS Expr1,
tbl_SalesOrderDetail.ITEM_CODE,
tbl_SalesOrderDetail.CUST_CODE,
tbl_SalesOrderDetail.DOC_NO
FROM (tbl_SalesOrderDetail
LEFT JOIN qry_NotTop100
ON tbl_SalesOrderDetail.ITEM_CODE = qry_NotTop100.Code)
INNER JOIN qry_Top100
ON tbl_SalesOrderDetail.ITEM_CODE = qry_Top100.Code
WHERE (((Year([DATE_FLD]))=Year(Date())) AND ((qry_NotTop100.Code) Is Null))
ORDER BY tbl_SalesOrderDetail.DOC_NO;
关于我可能做错的任何想法?
答案 0 :(得分:0)
你想要的是一个反连接。有多种方法可以做到这一点,NOT IN
就是其中一种方式。 NOT IN
并不一定非常有效,但您可以了解如何改进事物。
LEFT JOIN
移至qry_NotTop100
。WHERE
qry_NotTop100
条款
WHERE
条款AND tbl_SalesOrderDetail.ITEM_CODE NOT IN ( SELECT qry_NotTop100.Code FROM qry_NotTop100 )