我有一个TICKET
表,用户可以将记录与Supplier_ID
表中的SUPPLIER
相关联,也可以手动输入供应商名称(Supplier_ID
1}} = 0)用于快速票据记录,以避免为终身供应商购买中的一个创建供应商记录(填写20个供应商字段)。
Ticket_ID | Supplier_ID | Supplier
--------------------------------------
1 | 0 | A Company
2 | 0 | Inc. Co
3 | 10 |
4 | 1 |
SUPPLIER
表看起来像(加上其他20个字段)
Supplier_ID | Supplier
-------------------------
1 | A Company
2 | B Company
3 | C Company
4 | D Company
现在我想为每个独特的供应商提供一个自动填充文本框(所有这些都来自SUPPLIER表和TICKET
表中的那些名称,其中Supplier_ID = 0但与供应商的任何供应商名称都不匹配
到目前为止,我已经进入了MS ACCESS SQL
SELECT Supplier_ID, Supplier FROM SUPPLIER
UNION ALL
SELECT Supplier_ID, Supplier FROM TICKET WHERE Supplier_ID = 0 AND Supplier <> '' GROUP BY Supplier, Supplier_ID
输出
Supplier_ID | Supplier
-------------------------
1 | A Company
2 | B Company
3 | C Company
4 | D Company
0 | A Company
0 | Inc. Co.
工作几乎没问题,除了有两个A公司(一个有supplier_id 1,一个有0)。我想避免添加ID = 0
的副本有可能吗?
答案 0 :(得分:3)
我认为您希望从查询的第一部分中排除任何供应商。所以:
SELECT Supplier_ID, Supplier
FROM SUPPLIER
UNION ALL
SELECT DISTINCT Supplier_ID, Supplier
FROM TICKET as t
WHERE t.Supplier <> "" AND
t.Supplier NOT IN (SELECT s.Supplier FROM Supplier as s);