【发布时间】: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 小时。然后,我可以回答我的问题。谢谢顺便说一句..