在SQL请求中合并日期?

时间:2018-04-30 09:46:01

标签: mysql sql subquery

这是背景:我希望每天获得两个储备的平均含量。它们每天记录几次并插入到event_param列中的db中。有朝一日可能没有使用第二个储备。因此,我们没有关于保留内容的数据。这就是问题所在。

我告诉你我正在进行查询的表结构:

enter image description here

这是我的疑问:

SELECT * FROM 
(SELECT cast(event_datetime as date) as day, event_param_2 as R1, AVG(event_param_3) as ContentR1
FROM events
WHERE upcNameId = 'Name'
AND event_datetime >= '2017-01-01 00:00:00'
AND event_datetime <= '2018-04-01 00:00:00'
AND event_code IN(52,53,54)
AND event_param_2 = 1  
GROUP BY cast(event_datetime as date)
ORDER BY cast(event_datetime as date)asc) as r1reservecontent,
(SELECT cast(event_datetime as date) as day, event_param_2 as R2, AVG(event_param_3) as ContentR2
FROM events
WHERE upcNameId = 'Name'
AND event_datetime >= '2017-01-01 00:00:00'
AND event_datetime <= '2018-04-01 00:00:00'
AND event_code IN(52,53,54)
AND event_param_2 = 2
GROUP BY cast(event_datetime as date)
ORDER BY cast(event_datetime as date)asc)as r2reservecontent

正如你所看到的那样,我对每个储备的每天的平均分组和平均值。 结果如下: enter image description here

但这不是我想要的。我希望只有一个日列,每天都会分隔内容。 没有给出R1或R2的日期将等于记录的最后一个内容。

我知道这是一个复杂的问题,当你有这些信息时很难解决,但如果你能帮助我,那就太好了。

enter image description here

这是来自表事件的一些示例数据。 event_param_2 =保留号码(= 1或2) event_param_3 =以千克为单位的内容

1 个答案:

答案 0 :(得分:0)

我通过执行sql存储过程来解决它