3

ここで質問したいのですが...説明させてください...ここには3つのテーブルがあります.1.トランザクションテーブル2.トランザクション詳細3.アイテム

いや、ここでの問題は、例として今月 (2013-01) のアイテムの売上を知りたいということです。これが私のテーブル構造です...

1 取引表

--------------------------
idTransaction | date       | idUser | idCustomer  | total   | NOSC
--------------------------------------------------------------------
1             | 2013-01-01 | 3      | 4           | 500000  | 1CO
2             | 2013-01-01 | 3      | 5           | 450000  | 2CO
3             | 2013-01-01 | 3      | 6           | 250000  | 3CO

2 transaction_detail

-----------------------------------------------------------------
idTransaction | idItem | qty | price
----------------------------------------
1             | 1      | 2   | 250000
2             | 2      | 1   | 250000
2             | 3      | 1   | 200000
3             | 1      | 1   | 250000

3 アイテムテーブル

idItem | Name Item
---------------------------------------
1      | glass
2      | Medicine A
3      | Medicine B

4 顧客

 idCustomer | Name Customer
    --------------------------------------
    4             | Abuh
    5             | Abeh
    6             | ABooh

したがって、これらのテーブルに基づいて、このようなデータを取得したいと思います....

Name Item | Nosc | Customer | Sold Quantity | @ Price | Total
---------------------------------------------
Glass     | 1CO  | Abuh     |2              | 250000  | 500000
Glass     | 3CO  | ABooh    |1              | 250000  | 250000
Medicine A| 2CO  | Abeh     |1              | 250000  | 250000
Medicine B| 2CO  | Abeh     |1              | 200000  | 200000

誰でも私を助けることができますか??

4

2 に答える 2

4
SELECT  b.`name Item`,
        a.qty `Sold Quantity`,
        a.price `@ price`,
        (a.qty * a.price) Total
FROM    transaction_detail a    
        INNER JOIN Item b
            ON a.idItem = b.idItem

上記のクエリは、例に示されているレコードと結果に基づいています。フォローアップの質問:特定のアイテムが異なる価格で販売される可能性はありますか?もしそうなら、どのようにそれを計算しますか?

更新1

SELECT  b.`name Item`,
        SUM(a.qty) `Sold Quantity`,
        a.price `@ price`,
        (SUM(a.qty) * a.price) Total,
        c.Date
FROM    transaction_detail a    
        INNER JOIN Item b
            ON a.idItem = b.idItem
        INNER JOIN `transaction` c
            ON a.idtransaction = c.idTransaction
GROUP   BY b.idItem, b.`name Item`, a.price, c.Date

更新2

SELECT  b.`name Item`,
        SUM(a.qty) `Sold Quantity`,
        a.price `@ price`,
        (SUM(a.qty) * a.price) Total,
        d.`Name Customer`
FROM    transaction_detail a    
        INNER JOIN Item b
            ON a.idItem = b.idItem
        INNER JOIN `transaction` c
            ON a.idtransaction = c.idTransaction
        INNER JOIN Customer d
            ON d.idCustomer = c.idCustomer
GROUP   BY b.idItem, b.`name Item`, a.price, 
           MONTH(c.Date), YEAR(c.Date), d.`Name Customer`
于 2013-02-04T07:29:30.527 に答える
1
select it.item_name,td.qty,td.price,t.total 
  from transaction as t,transaction_detail as td,item_table as it 
  where t.idTransaction=td.idTransaction 
    and td.idItem=it.idItem 
    and t.date between 'YEAR(CURDATE())."-".MONTH(CURDATE())."-"."01"' 
                   and 'YEAR(CURDATE())."-".MONTH(CURDATE())."-"."31"'
于 2013-02-04T07:40:46.857 に答える