2012-08-07 107 views
0
select student_id, class_id, section_id, exam_date, exam_id, 
     sum(number*(1-abs(sign(subject-1)))) as sub1, 
     sum(number*(1-abs(sign(subject-2)))) as sub2, 
     sum(number*(1-abs(sign(subject-3)))) as sub3, 
     sum(number*(1-abs(sign(subject-4)))) as sub4, 
     sum(number*(1-abs(sign(subject-5)))) as sub5, 
     sum(number*(1-abs(sign(subject-6)))) as sub6 
from result 
where class_id = '7' and section id = '3' and YEAR(exam_date) = '2012' and exam_id = '3' 
GROUP BY student_id 

我有一個問題,當我用where子句過濾所有數值得到0,如果我運行查詢沒有where子句結果將很好,但從所有數據庫。 如何使用where子句過濾查詢? 任何人都可以幫助我嗎?Mysql數據透視表與where條款

回答

1

你需要按過類標識碼

SELECT * FROM ( 
select student_id, class_id, 
     sum(number*(1-abs(sign(subject-1)))) as sub1, 
     sum(number*(1-abs(sign(subject-2)))) as sub2, 
     sum(number*(1-abs(sign(subject-3)))) as sub3, 
     sum(number*(1-abs(sign(subject-4)))) as sub4, 
     sum(number*(1-abs(sign(subject-5)))) as sub5, 
     sum(number*(1-abs(sign(subject-6)))) as sub6 
from result GROUP BY student_id,class_id) m 
where class_id = '7' 
1

在哪裏包裝查詢。

SELECT * FROM (
select student_id, class_id, 
     sum(number*(1-abs(sign(subject-1)))) as sub1, 
     sum(number*(1-abs(sign(subject-2)))) as sub2, 
     sum(number*(1-abs(sign(subject-3)))) as sub3, 
     sum(number*(1-abs(sign(subject-4)))) as sub4, 
     sum(number*(1-abs(sign(subject-5)))) as sub5, 
     sum(number*(1-abs(sign(subject-6)))) as sub6 
from result GROUP BY student_id) m 
where class_id = '7'