【发布时间】:2011-10-15 18:39:13
【问题描述】:
我需要查询并加入一年中的所有日子,但在我的数据库中没有日历表。
谷歌搜索后,我在 PostgreSQL 中找到了generate_series()。 MySQL有类似的东西吗?
我的实际表是这样的:
date qty
1-1-11 3
1-1-11 4
4-1-11 2
6-1-11 5
但我的查询必须返回:
1-1-11 7
2-1-11 0
3-1-11 0
4-1-11 2
and so on ..
【问题讨论】:
-
为什么不能在你的应用逻辑层做这个?
-
这不是应用逻辑中的“正确”解决方案。通过 sql 做的更好,真的更好(如果可能的话)。如果它不可能......好吧,我会在我的应用程序逻辑中做......
-
@stighly:嗯,你可以在 MySQL 上解决一半的问题。也就是说,您可以
GROUP BY date和SUM(qty) qty,但我不记得有什么解决方案可以为缺失的序列添加行。最好在应用逻辑中进行,如果日期有 qty 值,则显示,否则显示 0。 -
实际上,我正在解决它生成一个完整的日历表......从 1-1-2010(例如)到 31-12-2020。它有效..但它不是很优雅......
标签: mysql sql generate-series