2013-03-28 93 views
0

我試圖在我的工作臺中打開一個腳本,但關鍵字PIVOT被紅色加下劃線,並顯示一條錯誤消息:'Syntax error,Unexpected IDENT_QUOTED。 腳本:mysql腳本。語法錯誤,關鍵字PIVOT上的意外IDENT_QUOTED錯誤消息

select * from 
(select c1.id, a.num0,a.num1 from table1 c1 
Inner Join 
(select c2.id, if(team=1,1,0) as num0, if(team=2,1,0)as num1 from table1 c2,table2 r2 
where c2.q_id = 2046 and r2.q_id = 2046 group by c2.d)a on a.id = c1.id) pvt 

PIVOT(
For content 
IN([team1],[team2]))pvt2 

回答

0

MySQL沒有PIVOT功能。但是,可以使用具有CASE表達式的聚合函數來複制此功能。

根據您的原始查詢,它看起來像你需要一些與此類似:

select t2.id, 
    sum(case when team = 1 then 1 else 0 end) num0, 
    sum(case when team = 2 then 1 else 0 end) num1 
from table1 t1 
inner join table2 t2 
    on t1.q_id = t2.q_id 
group by t2.id 
+0

爲什麼我需要使用「SUM」 – user2210819 2013-04-01 03:36:59

+0

@ user2210819當你旋轉的數據,通常你會使用聚合功能。您也可以使用表上的多個連接執行相同的任務。 – Taryn 2013-04-01 09:50:24

+0

我應該解釋清楚,請閱讀[this](http://stackoverflow.com/questions/15754867/sql-transform-fields-to-column) – user2210819 2013-04-02 02:46:46

0

你的查詢有語法錯誤,因爲MySQL不支持PIVOT。你需要做一些額外的事情來達到你想要的MySQL。請參閱thisthis相關問題。

相關問題