我真的被这个多条件查询困住了。
有两组样本数据:
我想要的是:
我想知道那些被时代杂志提到的光荣的学生,即n=1,n=2,n=3。。。他们2012年每个价格、每个月、每个不同类型的奖励的平均收入是多少?如果某个月没有价值,则返回空值。
到目前为止

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...

如有任何意见/帮助,将不胜感激。

最佳答案

您可以使用join和using case来尝试这个方法,如果您使用任何服务器端语言,请确保为日期列设置了正确的数据类型我建议您使用服务器端语言来进行这种数据表示,现在您可以尝试这个

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

关于mysql - MySQL Join,选择,多个条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19796731/

10-16 08:25