Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL连接、选择、多个条件_Mysql_Sql_Join - Fatal编程技术网

MySQL连接、选择、多个条件

MySQL连接、选择、多个条件,mysql,sql,join,Mysql,Sql,Join,我真的被这种多条件查询所困扰 有两组样本数据: 以下是我想要的: 我想知道《泰晤士报》提到的那些受尊敬的学生。。。他们在2012年每个价格、每个月、每个不同类型的奖励的平均收到金额是多少,如果在特定月份没有价值,则返回NULL 到目前为止我有 SELECT Type_Of_Reward, Honorable_Mention, MONTH(date) FROM Data_2 LEFT JOIN SELECT(Honorable_Mention, COUNT(*) FR

我真的被这种多条件查询所困扰

有两组样本数据:

以下是我想要的:

我想知道《泰晤士报》提到的那些受尊敬的学生。。。他们在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... 

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

您可以在所有月份都使用join和USE 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`)

数据库不能凭空生成数据。如果要表示“空”月份,则必须提供所需日期类型的列表,例如,包含所需年份/月份的临时表,以便加入。另外,将单个月份转换为这样的列需要pivot查询,mysql不支持这种查询。有一些变通方法,但它们使查询非常难看,并且很难维护。@MarcB使用DATEFORMAT和GROUP BY可以实现这一点。问题是,我们是在谈论仅为今年生成数据吗?所以这是一个“一次性运行并扔掉”的查询?@Marc B,谢谢你的输入。因为我是MySQL的新手,我知道在R/Pivot表中做这样的事情要容易得多。然而,我被要求在MySQL中完成这项工作(请仔细阅读。您需要了解这个概念,并在CASE语句中使用MONTH()函数,为每个month@AgRizzo谢谢,链接很有帮助!谢谢@dianuj你的结构真的很有帮助。我只是想知道如何把平均价格放在某个地方。
CASE WHEN
rocks!:)(即使有
分组依据
拥有