2011-08-15 154 views
0

查詢數據庫時遇到問題。不使用GROUP_CONCAT的查詢

Id parent pro_comp_id year   type financial quantity 

1 1   2  2011-08-15  1  10   12 
2 1   2  2011-08-15  2  100   120 
3 1   2  2011-08-15  3  178   190 

任何機構可以告訴我如何查詢這個 ,使其顯示在一行此三行。

financial quantity financial quantity financial quantity 
    10  12   100  120   178 190  

可以使用組CONCAT SELECT GROUP_CONCAT(金融),父母從achivements組由家長 做,但我不希望使用GROUP_CONCAT

回答

2

你想要的是通常被稱爲「樞」。下面是這樣做的標準方式:

select 
    year, 
    sum((financial = 10) * quantity) as financial_10_qty, 
    sum((financial = 100) * quantity) as financial_100_qty, 
    sum((financial = 178) * quantity) as financial_178_qty 
from mytable 
group by 1; 

這工作,因爲financial = ?是1真,0表示假。

這個答案假設「金融」的價值是已知的和固定的。