我真的很困惑这个多条件查询。
有两组样本数据:
这是我想要的:
我想知道有时被提及的学生,即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...
任何评论/帮助将不胜感激。
答案 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`)