我有一個SSRS報告,我試圖有條件地總結行。我有:使用SSRS對錶格中的項目進行分組和彙總
11/15/2010 12:14:43 AM |當前匯率|當前速度|金額在使用分鐘(速度*費率/ 60) 等等等等
我想補充一點,在一個小時內發生的所有行,讓我的報告將顯示:
11/15/2010 | 12 AM - 1 AM |用於該小時的金額(比如7加侖)
我無法找到任何地方如何有條件地總結每小時一行,或者如何讓我的報告說出上述內容。
預先感謝您!
我有一個SSRS報告,我試圖有條件地總結行。我有:使用SSRS對錶格中的項目進行分組和彙總
11/15/2010 12:14:43 AM |當前匯率|當前速度|金額在使用分鐘(速度*費率/ 60) 等等等等
我想補充一點,在一個小時內發生的所有行,讓我的報告將顯示:
11/15/2010 | 12 AM - 1 AM |用於該小時的金額(比如7加侖)
我無法找到任何地方如何有條件地總結每小時一行,或者如何讓我的報告說出上述內容。
預先感謝您!
使用下表來進行測試:
CREATE TABLE `log` (
`entry_date` datetime DEFAULT NULL,
`amount_used` int(11) DEFAULT NULL
)
隨着一些測試數據:
entry_date amount_used
2010-11-01 10:00:00, 3
2010-11-01 10:30:00, 1
2010-11-01 11:00:00, 6
使用此查詢來獲取使用的日期,時間範圍和總量:
SELECT DATE(entry_date) AS entry_date,
CONCAT_WS('-',CONVERT(MIN(HOUR(entry_date)), char(2)), CONVERT(MAX(HOUR(entry_date)),CHAR(2))) hours,
SUM(amount_used) amount_used
FROM (
SELECT entry_date, SUM(amount_used) AS amount_used
FROM log
GROUP BY DATE(entry_date), HOUR(entry_date)
) T;
所有的CONCAT/CONVERT的東西只是爲了得到在特定的一天小時的範圍,作爲一個stri NG。這是結果:
entry_date hours amount_used
2010-11-01, 10-11, 10
非常感謝Tony,這對我很有幫助! – Sarah 2010-11-15 21:58:41
我做了一個新的數據集並粘貼查詢,將名稱更改爲我的數據庫中的名稱。但是,當我嘗試執行查詢時,我得到'DATE'不是公認的內置函數名稱。任何想法爲什麼這可能是? – Sarah 2010-11-15 22:12:39
您使用SQL Server嗎?我目前只有MYSQL可用。要更改爲T-SQL,請用DATEPART替換HOUR函數(HOUR,entry_date)。要在T-SQL中只獲得DATETIME的日期,你必須使用類似下面的方法做一個非常討厭的破解:CAST(FLOOR(CAST(GETDATE()AS FLOAT))AS DATETIME) – Tony 2010-11-15 22:23:14
您正在試圖在報告中執行此操作,與SQL語句? – 2010-11-15 20:43:20
是的,在報告中。我希望使用Expression功能來完成此操作。 – Sarah 2010-11-15 20:45:00
我同意OMG Ponies,這在SQL中會更簡單,然後將結果呈現給報告(可能也會更快)。你說你是「......希望使用表達功能......」,你能解釋爲什麼你更喜歡這種方法嗎? – Tony 2010-11-15 20:49:35