-1

顾客

ID  (integer)   Name (Varchar)
10001   Akash Kumar
10002   Vijay Chopra
10003   Rahul Mishra

交易

ID  (integer)   CUST_ID(integer)    STOCK_SYM(varchar)  TYPE(varchar)   QTY(integer)
1   10001   UNITECH BUY 100
2   10003   UNITECH SELL    200
3   10001   DLF BUY 500
4   10001   DELTA   BUY 450
5   10002   DLF BUY 110
6   10002   DLF SELL    400

我想显示总交易量超过 300 的股票。

我还想显示每个客户的最大购买量以及客户的姓名。谁能告诉我应该使用的查询。

4

1 回答 1

7

这仅在 SUM 大于 300 时显示 MAX

SELECT
    C.Name, X.SumQty, X.MaxQTY
FROM
    Customer C
    JOIN
    (
    SELECT
        CUST_ID, SUM(QTY) AS SumQty, MAX(QTY) AS MaxQTY
    FROM
        Transactions
    GROUP BY
        CUST_ID
    HAVING
        SUM(QTY) > 300
    ) X ON C.CUST_ID = X.CUST_ID;

为了向所有客户显示 MAX,而不仅仅是总数 > 300 的地方,那么它是 2 个查询,但这些可以从我这里的一个中计算出来

于 2013-07-04T11:45:17.243 回答