0

私は3つのテーブルを持っています:product、、。customertransaction

製品:

id_product    price
    1         1000
    2         2000

お客様:

id_customer    name
    1          Tom
    2          Jack

取引:

id_transaction    id_product     id_customer    qty    date
    1                 1              1           10    2013-02-21
    2                 2              1           50    2013-02-21
    3                 1              2           15    2013-02-21

私はこの結果を達成したいと思います:

id_customer      name      total_transaction      purchase_qty      subtotal
    1            Tom             2                     60            110000
    2            Jack            1                     15             15000

MySQLのクエリを使用してその結果を取得するにはどうすればよいですか?

4

4 に答える 4

1
SELECT  t.id_customer, c.name, 
        COUNT(t.id_customer) AS total_transaction, 
        SUM(t.qty) as purchase_qty
FROM transaction t
INNER JOIN customer c
ON t.id_customer = c.id_customer
GROUP BY t.id_customer,c.name
于 2013-02-21T10:51:28.503 に答える
0
SELECT cs.id_customer, cs.name, COUNT(tr.transaction) AS total_transaction, SUM(tr.qty) as purchase_qty, SUM(tr.qty*pr.prize)
FROM customer AS cs
LEFT JOIN transaction AS tr ON tr.id_customer = cs.id_customer
LEFT JOIN product AS pr ON pr.id_product = tr.id_product
GROUP BY cs.id_customer

あなたはまったくの初心者だと思うので、私はあなたのためにこれをしました。次回、独自のアイデアがあれば、私たちに提供してください。そうすれば、クエリ全体を書く必要はありません。努力を見せてください。

于 2013-02-21T10:48:42.390 に答える
0
SELECT c.id_customer, c.name, count(t.id_transaction) AS total_transaction
FORM Customer c INNER JOIN Transaction T
 ON C.id_customer = T.id_customer
GROUP BY c.id_customer
于 2013-02-21T10:48:42.707 に答える
-1

group by特定の顧客の結果を集計するため、ステートメントが必要です。

SELECT id_customer, name, count(id_transaction) AS total_transaction
FORM Customer, Transaction
WHERE Transaction.id_customer = Customer.id_customer
GROUP BY id_customer

これで問題全体が解決するわけではありませんが、アイデアはあります。

于 2013-02-21T10:44:15.170 に答える