子查询中不存在,连接回单独的表



运行报告以找出我们系统中的哪些部件在一段时间内没有订单。本报告的其他次要方面,这是我正在努力的主要领域。我能弄清楚的最好的方法是获取在此期间有订单的部分列表,然后将其与其他表进行比较,但我的连接或子查询都正常工作。

不存在这样的工作吗?

SELECT i.customer_no AS CustNumber,
i.part_no AS PartNumber,  
p.cpt_prog_mat
FROM fit_part_info i  
INNER JOIN fit_part_forecast f ON f.part_info_id = i.id
INNER JOIN orrcpt_rec p ON i.part_no = p.cpt_cus_part_no
WHERE (accounting_period = "201911" AND cpt_prog_mat = "Y") OR
(accounting_period = "201912" AND cpt_prog_mat = "Y") OR
(accounting_period = "202001" AND cpt_prog_mat = "Y") OR
(accounting_period = "202002" AND cpt_prog_mat = "Y") AND
NOT EXISTS (SELECT DISTINCT(i.part_no)
FROM INNER JOIN ortord_rec o ON i.part_no = o.ord_cus_part_no
WHERE (o.ord_comp_dt < 20191126 AND o.ord_comp_dt > 20190925 AND o.ord_cus_part_no <> ""))
GROUP BY i.part_no, i.customer_no, p.cpt_prog_mat
ORDER BY i.part_no; 

看起来您在子选择中缺少初始表名。

尝试

NOT EXISTS (
SELECT 1
FROM fit_part_info i
INNER JOIN ortord_rec o ON i.part_no = o.ord_cus_part_no
WHERE
o.ord_comp_dt < 20191126
AND o.ord_comp_dt > 20190925
AND o.ord_cus_part_no <> ""
)

顺便说一句,您可以使用 BCselect 1如果您只是检查它的存在,您实际上不需要选择某些东西

最新更新