【发布时间】:2018-04-05 22:23:56
【问题描述】:
我很接近,但我似乎无法弄清楚这个 SQL 查询。我的 SELECT 和相关的 FROM 表是正确的,但我认为我的子查询结构搞砸了。
问题:编写一条 SQL 语句,为每种原材料生成两个成本最低的供应商(供应商)的列表。在结果表中,显示以下列:材料 ID、材料描述、供应商 ID、供应商名称和供应商的单价。按物料编号和供应商单价升序对结果表进行排序。注意:如果一种原材料只有一个供应商(供应商),那么该供应商及其原材料的单价也应该在结果(产出)表中。
这是我得到的:
SELECT Supplies_t.Material_ID, Raw_Materials_t.Material_Description,
Vendor_t.Vendor_ID, Vendor_t.Vendor_name, Supplies_t.Unit_price
FROM Supplies_t S1, Raw_Materials_t, Vendor_t
WHERE Vendor_t.Vendor_ID = Supplies_t.Vendor_ID
AND Supplies_t.Material_ID = Raw_Materials_t.Material_ID
AND Supplies_t.Unit_price IN
(SELECT TOP 2 Unit_price
FROM Supplies_t S2
WHERE S1.Material_ID = S2.Material_ID
ORDER BY S2.Material_ID ASC, S2.Unit_price ASC)
【问题讨论】: