0

データベースに次のテーブルがあります。

*custmrsTble: (custID: PK,Int) - (Name: varchar(20))
=============
custID      Name
________________
1           Sam 
2           Tom 

ProductsTble: (prodID: PK,Int) - (prodName: varchar(20)) - (soldPrice: money)
===========
prodID   prodName  soldPrice
____________________________
1        Biscuits   20
2        Butter     30
3        Milk       10

OrdersTbl:  (orderID: PK,Int) - (orderDate: smallDateTime) - (custID: FK,Int) 
==========
orderID   orderDate   custID
____________________________
1         2013/4/2     1
2         2013/4/2     2
3         2013/4/3     1
OrderDetails:  (orderDetailsID : PK,Int)- (orderID: FK,Int) - (prodID: FK,Int) - (qntty: int)
=============
orderDetailsID   orderID  prodID  qntty
_______________________________________
1                 1        1      2
2                 1        2      1
3                 1        3      2
4                 2        1      5
5                 3        1      1
CashMoventsTble:  (cashID : PK,Int)- (orderID: FK,Int) - (cashDate : smallDateTime) - (cashValue money)
================
cashID   orderID  cashDate  cashValue 
_____________________________________
1        1       2013/4/2   30
2        2       2013/4/2   100
3        1       2013/4/5   20
4        

したがって、次のような顧客ステータスを返すクエリを実行したいと思います。

Name    TotalPurchase     TotalPayments    
_______________________________________
Sam     110                50
Tom     100                100

TotalPurchase = sum(qntty) * soldPrice ----> すべての顧客のすべての購入
TotalPayments = sum(cashValue ) -----> すべての顧客のすべての支払い

しかし、それを行う方法が正確にはわかりません。だから、これを達成するのを手伝ってください。ありがとう。

4

1 に答える 1

0
SELECT  c.Name
    ,TotalPurchase = (
        SELECT SUM(p.soldPrice * d.qntty)
        FROM OrderDetails d 
        INNER JOIN  OrdersTbl o 
            ON d.orderID = o.orderID
        INNER JOIN  ProductsTbl p 
            ON p.prodID = d.prodID
        WHERE o.custID = c.custID )
    ,TotalPayments =  (
        SELECT  SUM(cm.cashValue)
        FROM    CashMoventsTble cm
        INNER JOIN OrdersTbl o
            ON o.orderID = cm.orderID
        WHERE  o.custID = c.custID)
FROM    custmrsTble c
于 2013-05-02T13:12:46.763 に答える