我正在尝试开发一个查询,列出供应商的VendorID,这些供应商的付款金额大于VendorIDs为34,35和83的公司的最大付款额。使用子查询。显示VendorID和付款。 以下是我的工作。这只是VendorID 34的返回结果。是否可以列出最大支付额大于最大的具有多个vendorIDs(34,35和83)的公司?
SELECT VendorID, PaymentTotal
FROM Invoices
WHERE PaymentTotal > ALL
(SELECT PaymentTotal
FROM Invoices
WHERE VendorID = 34)
答案 0 :(得分:0)
我知道,这是一个很老的问题,但只是填补了一些漏洞:
鉴于你的表是用这样的一些sql创建的:
create table if not exists Invoices (
VendorID integer, PaymentTotal float
);
并且可能会有一些数据如下:
insert into Invoices values(1, 3500.5);
insert into Invoices values(2, 9500.5);
insert into Invoices values(34, 500.5);
insert into Invoices values(35, 700.5);
insert into Invoices values(83, 4000.5);
然后,VendorIds将很容易从数据库中拉出:
SELECT VendorID
FROM Invoices
WHERE PaymentTotal >
(SELECT max(PaymentTotal)
FROM Invoices
WHERE VendorID in (34, 35, 83) );
刚刚测试了一些最近的PostgreSQL。