【发布时间】:2014-07-16 16:20:37
【问题描述】:
我不知道下一步该做什么。我需要编写一个查询,告诉我位于特定城市的供应商是否都运送公共部件。我创建了以下查询
select sh1.partno,sh1.supplierno
from shipments sh1
where sh1.supplierno IN (
select s.supplierno
from suppliers s
where s.city = 'LONDON')
返回
partno supplierno
P1 S1
P1 S1
P3 S1
P3 S1
P3 S1
P6 S4
P2 S4
P5 S4
P5 S4
我不知道下一步该做什么。以下是指定城市供应商发货的所有零件。您如何比较这两列,以便您想知道供应商编号列中列出的两个不同供应商编号是否运送了一个共同的零件编号。我知道这不会有结果,但我仍然需要知道如何前进。
提前致谢
【问题讨论】:
-
你想要的结果是什么?!
-
您需要的语法是
GROUP BY .. HAVING。这是作业吗? -
可能是这样的? stackoverflow.com/questions/8149210/… 在您的情况下,您将选择 s.city, t.* from [shipments] s join ( select partno, supplierno, count() as qty from [shipments] group by partno, supplierno 有 count( i>) > 1 ) t on s.partno = t.partno 和 s.supplierno= t.supplierno
-
是的,这是一个家庭作业。我尝试过 group by,但这不只是告诉我其中一个供应商多次运送了一个零件,而不是他们与另一个供应商运送了相同的零件吗?
-
我可能应该补充一点,在这种情况下,供应商城市名称 london 是与同时列出供应商编号和零件编号的发货的单独表格。这就是为什么我有用于查找供应商编号的子查询。
标签: sql