mysql 日期连续_SQL(MySQL的)产生连续的日期/月报告

我做了迁移任务,从Oracle移植数据存储Java应用程序的MySQL 5SQL(MySQL的)产生连续的日期/月报告

你可以想像,一些查询需要重写。一切都很顺利,直到我来到Reporting模块。希望你们能给我一些提示。

不久,我有一个表(比如表名“富”)

+-------------+-------------+

| | |

| d (datetime)| v (number) |

+-------------+-------------+

| 2000-01-01 | 3 |

| 2000-01-11 | 2 |

| 2002-07-01 | 1 |

+-------------+-------------+

是我迄今所做的:

当用户给STARTDATE,结束日期为参数,我生成和报告按日期和按月:

例如2000-01-01的startDate,结束日期:2003-01-01

+-------------+-------------+

| day | Sum |

+-------------+-------------+

| 2000-01-01 | 3 |

| 2000-01-11 | 2 |

| 2002-07-01 | 1 |

+-------------+-------------+

+-------------+-------------+

| Month | Sum |

+-------------+-------------+

| 2000-01 | 5 |

| 2002-07 | 1 |

+-------------+-------------+

但要求是,如果日期是不是在表中,列出了日/月不管怎么样,有了总和= 0。像:

+-------------+-------------+

| Month | Sum |

+-------------+-------------+

| 2000-01 | 5 |

| 2000-02 | 0 |

| 2000-03 | 0 |

| 2000-04 | 0 |

| 2000-05 | 0 |

| ... | ... |

| 2002-07 | 1 |

| ... | 0 |

+-------------+-------------+

这是用Oracle实现的,但是我被Mysql困住了。任何人可以提供一些提示,更好的示例代码,如何用mySql实现它?

谢谢。

2012-07-27

Kent

+0

http://stackoverflow.com/questions/7252460/mysql-group-by-and-fill-empty-rows应该给你一些技巧。顺便说一句,Oracle在Oracle中是如何完成的? –

2012-07-27 10:34:08

+0

Oracle如何实现? –

2012-07-27 10:34:22

+0

@RaphaëlAlthaus我会看看链接。使用Oracle,我生成月份str:SELECT DISTINCT TO_CHAR(add_months(to_date(?,'yyyy/mm'),ROWNUM-1),'yyyy/mm') 从 DUAL CONNECT BY LEVEL <= months_between to_date(?,'yyyy/mm'),to_date(?,'yyyy/mm'))+ 1)个月 然后离开加入Foo表。 –

2012-07-27 10:42:37


版权声明:本文为weixin_28958535原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。