【问题标题】:how to merge a query result by datetime in same table mysql?如何在同一个表mysql中按日期时间合并查询结果?
【发布时间】:2012-04-02 09:11:02
【问题描述】:

全部,

我需要你的帮助将结果合并到 mysql 中的同一日期时间。

我会查询两个表,例如:

SELECT b.ID, b.DateTime, b.Value 
FROM tableA a, tableB b 
WHERE (a.Id=1) OR (a.Id=2) OR (a.Id=3) AND (a.Id = b.ID) 
      AND (b.DateTime Between '2011-04-02 06:00' And '2011-04-02 06:05')

查询结果:

| ID  |    DateTime      | Value |
----------------------------------
| 1   | 2011-04-02 06:00 | 20    | 
| 1   | 2011-04-02 06:05 | 21    | 
| 2   | 2011-04-02 06:00 | 10    | 
| 2   | 2011-04-02 06:05 | 16    | 
| 3   | 2011-04-02 06:00 | 23    | 
| 3   | 2011-04-02 06:05 | 22    |

我想要的只是一个结果像:

|    DateTime      | ID_1    | ID_2   | ID_3   | 
------------------------------------------------
| 2011-04-02 06:00 |  20     |   10   | 23     | 
| 2011-04-02 06:05 |  21     |   16   | 22     | 

我希望有一个解决方案。

感谢您的所有帮助。

问候,
优吉Z

【问题讨论】:

  • 这被称为数据透视表,在 SO 上有很多关于这个问题的答案,例如stackoverflow.com/questions/5846007/…
  • 谢谢,困难是当我使用日期时间时,但我会尝试它..我会在它之后告诉你..
  • 感谢@liquorvicar 的解决方案......我已经尝试过这个查询:SELECT b.Date, SUM(CASE WHEN a.Id=1 THEN b.Value ELSE 0 END) AS Mac1, SUM(CASE WHEN a.Id=2 THEN b.Value ELSE 0 END) AS Mac2, SUM(CASE WHEN a.Id=3 THEN b.Value ELSE 0 END) AS Mac3 FROM TableA a, TableB b WHERE (a.Id = b.ID) AND (b.Date Between '2011-04-02 06:00' And '2011-04-02 06:05') GROUP BY b.DA_Date 结果就像我需要的一样...... :)
  • 您可以将其发布为您问题的答案并接受它。然后其他人不会浪费时间阅读您的问题,因为无论如何它已经解决了。谢谢。
  • 我想要但我不能,因为我没有足够的积分来做,或者我必须等到我发布问题后的 8 小时。然后,我可以回答我的问题。谢谢顺便说一句..

标签: mysql datetime merge


【解决方案1】:

感谢@liquorvicar 的解决方案...

我试过这个查询:

SELECT b.Date, 
SUM(CASE WHEN a.Id=1 THEN b.Value ELSE 0 END) AS Mac1, 
SUM(CASE WHEN a.Id=2 THEN b.Value ELSE 0 END) AS Mac2, 
SUM(CASE WHEN a.Id=3 THEN b.Value ELSE 0 END) AS Mac3 
FROM TableA a, TableB b 
WHERE (a.Id = b.ID) AND (b.Date Between '2011-04-02 06:00' And '2011-04-02 06:05') 
GROUP BY b.DA_Date 

结果就像我需要的一样.. :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2011-01-11
    • 1970-01-01
    • 2020-07-28
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多