2012-05-16 48 views
0

我有3個表:被另一個表的SUM領域MySQL查詢順序

酒店:ID,HOTEL_NAME

hotel_supplier:ID,supplier_name

hotel_price:ID,HOTEL_ID,supplier_id,配股,價格

我想從酒店訂單中選擇所有酒店價格下降的總和(分配),所以從酒店的結果排序有最多lotment。如何做到這一點..?,感激地收到了任何想法...,謝謝。

對不起,我忘了一件事,還有另外一個條件,在hotel_price if price == 0那麼該行的分配不算在總和(分配)中。

+0

clearify你的問題,並提供一些數據 –

回答

4

試試這個變種:

select h.id, h.hotel_name, sum(hp.allotment) 
    from hotel h join hotel_price hp on (h.id = hp.hotel_id) 
group by h.id, h.hotel_name 
order by 3 desc; 
+0

感謝你的快速respons,和它的工作,但還有另一種情況,我忘了我的問題寫第一次。 – timenz

+0

@ChadTimen如果你的意思是你不想看到sum = 0的酒店,那麼你應該簡單地向查詢添加條件'hp.price <> 0'。 –

+0

不是條件得到酒店業績,而是條件得到金額(分配),例如酒店A有兩個價格從酒店供應商,第一個是100個配額5,第二個價格是0,配額4,所以正確的金額(配額)是5而不是9,因爲價格0不算。 抱歉,如果我的解釋太複雜。 – timenz