-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;

合計が 300 を超える場合だけでなく、すべての顧客の MAX を表示するには、2 つのクエリがありますが、これらは私のクエリから計算できます。

于 2013-07-04T11:45:17.243 に答える