我正在SQL Server 2005數據庫中運行存儲過程的Crystal Reports XI Developer中編寫報表。記錄集返回按日和小時分組的日誌摘要。關於Crystal Reports + SQL Server存儲過程與GROUP BY的問題
目前我的查詢看起來是這樣的:
SELECT
sum(colA) as "Total 1",
day(convert(smalldatetime, convert(float, Timestamp)/1440 - 1)) as "Date",
datepart(hh, convert(smalldatetime, convert(float, Timestamp)/1440 - 1)) as "Hour"
`etc...`
GROUP BY
Day, Hour
忽略日期瘋狂,我認爲系統設計師們大量飲酒時,他們制定瞭如何存儲他們的日期。
我的問題是這樣的:既然並不總是每天每個小時的記錄,那麼我最終會出現差距,這是可以理解的,但我希望Crystal能夠在整個24小時內報告是否有數據。
我知道我可以通過將整個查詢的WHILE
環(在存儲過程中),並在各個時間用來做查詢改變這一點,但我內心的東西說,一個查詢優於24
我想知道是否有辦法讓Crystal在一天的幾個小時內迭代,而不是像往常一樣迭代表中的行。
另外,有沒有一種方法來格式化查詢,以便它包含空的小時行而不會殺死我的數據庫服務器?
由於我按天和小時分組,所以創建列表爲每月的天(1-31)以及一天中的幾小時列表是否有意義?像: (1,0)(1,1)...(1,23)(2,1)(2,2)...(31,22)(31,23) – nageeb 2011-06-07 19:35:08
該月的日期爲有點難度,因爲它們每個月有所不同,有些年份是閏年。用幾年的日期製作一張桌子(Excel對此很有用)。然後將此LU_Date表加入LU_Hours以獲得最終的幫助表。 – PowerUser 2011-06-09 12:40:52