SQL:返回大于最大支付公司的付款的查询

时间:2016-10-01 00:35:26

标签: sql

我正在尝试开发一个查询,列出供应商的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)

1 个答案:

答案 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。