我的数据库中有这些数据

+--------------+------------+
| TRX_DATE     |  AMOUNT    |
+--------------+------------+
| 2012-12-01   |  100.00    |
| 2012-12-07   |  125.00    |
+--------------+------------+


我需要像这样的“ Generate full Month Row”左联接数据

+--------------+------------+-------------+
|   DATE       |  TRX_DATE  |   AMOUNT    |
+--------------+------------+-------------+
| 2012-12-01   | 2012-12-01 |   100.00    |
| 2012-12-02   |    NULL    |    NULL     |
....
| 2012-12-07   | 2012-12-07 |   125.00    |
....
+--------------+------------+-------------+


怎么做,谢谢。

编辑:更多澄清问题

最佳答案

我认为您只需要一个月中两个日期之间的日期,然后就可以进行左联接。

DECLARE @startDate DATETIME
DECLARE @endDate DATETIME

SET @startDate = '2012-12-01'
SET @endDate = '2011-12-31';

WITH dates(Date) AS
(
    SELECT @startdate as Date
    UNION ALL
    SELECT DATEADD(d,1,[Date])
    FROM dates
    WHERE DATE < @enddate
)

SELECT Date
FROM dates
LEFT JOIN yourtablename ON yourtablename.trx_date=dates.date


see the SOURCE:-该链接将向您展示一些实现此目的的好方法。

10-04 10:40
查看更多