MySQL Join,Select,多个条件

时间:2013-11-05 19:03:24

标签: mysql sql join

我真的很困惑这个多条件查询。

有两组样本数据:

Data

这是我想要的:

Want

我想知道有时被提及的学生,即n = 1,n = 2,n = 3 ... 2012年每个价格,每月,每种不同奖励类型的平均收入是多少? ,如果特定月份没有值,则返回NULL。

到目前为止我已经

SELECT Type_Of_Reward, Honorable_Mention, MONTH(date)       
FROM Data_2 LEFT JOIN      
SELECT(Honorable_Mention, COUNT(*) FROM Data_2 GROUP BY Honorable_Mention ON Student_ID = Honorable_Mention)        
WHERE YEAR(Data_1.date)=2012 AND... 

任何评论/帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用连接和使用大小写所有月份确保您为日期列设置了正确的数据类型如果您使用任何服务器端语言我建议您使用此类型的现在使用服务器端语言进行数据表示,你可以试试这个

SELECT d.Type_Of_Reward, d2.Honorable_Mention,
(CASE WHEN d2.`Honorable_Mention` IS NOT NULL AND MONTH(d.`date`)=1 THEN  d2.`Honorable_Mention`   ELSE 0  END) AS jan,
. //for other months
.
.
.

(CASE WHEN d2.`Honorable_Mention_id` IS NOT NULL AND MONTH(d.`date`)=10 THEN  d2.`Honorable_Mention`   ELSE 0  END) AS `oct`
FROM 
`data_1` d LEFT JOIN `data_2` d2 ON(d.`id`=d2 .`Honorable_Mention`)

MONTH