2013-03-31 49 views
1

我有3個包含信息的表格。加入多個表格並生成多個記錄

表1:訂單

 
+---------+----------------+------------+---------------+ 
| OrderID | OrderDate  | Community | Status  | 
+-------------------------------------------------------+ 
1  | 1 march 2013 | S1   | Approved 
2  | 5 march 2013 | S2   | Aporoved 
3  | 7 march 2013 | Z1   | Approved 
+-------------------------------------------------------+ 

表2:OrderArtickles

 
+------------------------------------------------------------------+ 
|Ordertitem | OrderID  | ArtikelID | UnitPrice | Delivered | 
+------------------------------------------------------------------+ 
| 1   | 1   | 20   | 5   | yes 
| 2   | 1   | 20   | 5   | yes 
| 3   | 2   | 21   | 10   | yes 
| 4   | 3   | 30   | 50   | yes 
+-------------------------------------------------------------------+ 

表3:用戶

 
+-----------------------------------------------------+ 
| Userid  | Username | Community  | Department | 
+-----------------------------------------------------+ 
| 1   | User1  | S1   | S 
| 2   | User2  | S2   | S 
| 3   | User3  | Z1   | Z 
+-----------------------------------------------------+ 

我需要一個MySQL查詢,讓下面的輸出:

 
+--------------------------------------+ 
| Department  | TotalPriceOfArtikels 
+--------------------------------------+ 
| S    | 20     
| Z    | 50     
+--------------------------------------+ 

我試着用JOIN,SUM,GROUP BY但沒有結果。我有的問題是,一個訂單給出多個文章。誰能幫我?

+0

感謝謝爾蓋你修好了我的眼睛:) –

回答

0

事情是這樣的:

select us.Department, 
sum (art.UnitPrice) as TotalPriceOfArtikels 
from user us 
left join orders ors 
on (us.Community = ors.Community) 
left join OrderArtickles art 
on (ors.OrderID = art.OrderID) 
group by us.Department 

------------------ EDITED ---------------- --------

我複製你的表的相同的價值觀和結構在我的MySQL,結果是好的,它給我:

Department TotalPriceOfArtikels 
    S    20 
    Z    50 

也許你想檢驗一個條件,如果交付=是或狀態= aprobed ?? ....與這個查詢結果是一樣,你已經發布;)

Saludos;)

+0

你錯過了'SUM() ' - 錯字? – Barmar

+0

你是對的....編輯xD – Hackerman

+0

感謝您的回覆,與查詢「Echo_me」相同的問題。總和是不正確的。 – user2229996

1

試試這個

select Department , sum(UnitPrice) as TotalPriceOfArtikels 
    from users u 
    inner join Orders o 
    on o.Community = u.Community 
    inner join OrderArtickles oa 
    on oa.OrderId = o.OrderId 
    group by Department 

DEMO HERE

OUTPUT:

Department TotalPriceOfArtikels 
     S    20 
     Z    50 
+0

感謝您的快速響應。查詢正在運行,但價格總和不正確。當我在數據庫上運行查詢時,價格太高。 – user2229996

+0

你能編輯我的小提琴並把你的數據放在那裏嗎? –