這個問題已經發布過,但是,正確的答案似乎並不奏效,所以我再次提出這個問題。在沒有任何東西的日子裏添加零點
如果沒有記錄,此代碼應該返回最後31天爲零;
SELECT dates.Date as Dates, isnull(Sum(ElapsedTimeSeconds),0) as ElapsedSeconds
FROM
[fnDateTable] (dateadd("m",-1,CONVERT(VARCHAR(10),GETDATE(),111)),CONVERT(VARCHAR(10),GETDATE(),111),'day') dates
LEFT JOIN UsersApplog on dates.date = UsersAppLog.LoggedDate
group by Dates.Date
參見[fnDateTable]這裏; fnDateTable
我回來的只是有數據的行。很煩人。
感謝您提供任何幫助。我相信這是一個簡單的解決方案,但它超出了我的想象。
這是一些輸出,其中有來自userapplog的數據;
Dates ElapsedSeconds
2011-05-17 00:00:00.000 5854
2011-05-18 00:00:00.000 5864
2011-05-21 00:00:00.000 4758
2011-05-22 00:00:00.000 8434
2011-05-23 00:00:00.000 2162
2011-05-25 00:00:00.000 491
2011-05-26 00:00:00.000 260
2011-05-28 00:00:00.000 216
如果我跑;
SELECT dates.Date as Dates
FROM
[fnDateTable] (dateadd("m",- 1,CONVERT(VARCHAR(10),GETDATE(),111)),CONVERT(VARCHAR(10),GETDATE(),111),'day') dates
我得到
Dates
2011-04-29 00:00:00.000
2011-04-30 00:00:00.000
2011-05-01 00:00:00.000
2011-05-02 00:00:00.000
2011-05-03 00:00:00.000
2011-05-04 00:00:00.000
2011-05-05 00:00:00.000
.
.
** **什麼數據庫 - ** **什麼??版本表什麼涉及到什麼是它們的結構(列和它們的數據類型)? – 2011-05-29 14:18:35
microsoft sql server 2008,fnDateTable返回最後31天作爲日期(有一個鏈接到查詢)。數據類型爲TIMEDATE,並且查詢對於有數據的日期正確工作,但對於不工作的日期don.t – philbird 2011-05-29 14:19:10
只有一個表usersAppLog,而fn返回日期列表 – philbird 2011-05-29 14:21:30