2014-10-28 78 views
1

好吧,我正在嘗試從同一服務器上的兩個不同數據庫的兩個表中檢索數據,並在Reporting Services中創建圖表。我目前在ssrs r2 2008上。對於圖表,我需要按年份和月份進行排序,因爲我有不同的年份,並計算每月分類爲活動的名稱數量。我能夠按年份訂購這些信息,但這些月份總是按字母順序排列,而不是按照時間順序排列。我試圖刪除ssrs中的默認排序,但它仍然返回相同的結果,所以我相信排序必須在我的查詢中完成。我的查詢如下:要在SSRS圖表中以正確順序顯示月份

SELECT COUNT(c.name) AS name, 
     DATENAME(mm, c.expireson) AS Month, 
     DATENAME(yyyy, c.expireson) AS Year 

FROM Database1.Table1 AS c 

WHERE c.name = 'Active' 

GROUP BY DATENAME(mm, c.expireson), DATENAME(yyyy, c.expireson) 

UNION ALL 

SELECT COUNT(d.name) AS name, 
     DATENAME(mm, d.expireson) AS Month, 
     DATENAME(yyyy, d.expireson) AS Year 

FROM Database2.Table2 AS d 

WHERE d.name = 'Active' 

GROUP BY DATENAME(mm, d.expireson), DATENAME(yyyy, d.expireson) 

任何幫助,如何我可以改變這個正確的月順序將不勝感激。提前致謝!

+1

你甚至沒有ORDER BY子句。你爲什麼期望SQL Server以任何特定順序返回? [請在此處閱讀#3](http://blogs.sqlsentry.com/aaronbertrand/t-sql-tuesday-56-sql-server-assumptions/)以及有關'mm'和'yyyy',爲什麼要輸入'yyyy'而不是'YEAR'?請閱讀[this](http://blogs.sqlsentry.com/aaronbertrand/bad-habits-revival/)和[this](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/20/)關於懶惰速記的壞習慣 - 使用簡寫 - 使用日期 - 時間操作.aspx)。 – 2014-10-28 19:14:16

+0

我很抱歉沒有提到最初,但我確實有一個沒有按月排序的條款。我剛剛結束了我剛開始的最初查詢。 – Sabr786 2014-10-29 11:05:56

回答

2

正如你提到的,如果你排序的月份名稱,將數據alphabitcally

所以排序利用datepart

SELECT COUNT(c.name) AS name, 
     DATENAME(mm, c.expireson) AS Month, 
     DATENAME(yyyy, c.expireson) AS Year, 
     DATEPART(yyyy,c.expireson) as YearNum, 
     DATEPART(m, c.expireson) as MonthNum 

FROM Database1.Table1 AS c 

WHERE c.name = 'Active' 

GROUP BY DATENAME(mm, c.expireson), DATENAME(yyyy, c.expireson),DATEPART(yyyy,c.expireson), DATEPART(m, c.expireson) 

UNION ALL 

SELECT COUNT(d.name) AS name, 
     DATENAME(mm, d.expireson) AS Month, 
     DATENAME(yyyy, d.expireson) AS Year, 
     DATEPART(yyyy,d.expireson) as YearNum, 
     DATEPART(m, d.expireson) as MonthNum 
FROM Database2.Table2 AS d 

WHERE d.name = 'Active' 

GROUP BY DATENAME(mm, d.expireson), DATENAME(yyyy, d.expireson),DATEPART(yyyy,d.expireson), DATEPART(m, d.expireson) 
order by YearNum, MonthNum 
+0

這正是我正在尋找的。非常感謝你!!! – Sabr786 2014-10-29 11:18:25

0

我有同樣的問題月份數排序。

事實證明,在類別組屬性中,排序選項卡具有與我所需的不同的字段排序數據。

希望這可以幫助未來的人...

+0

你可以添加一些更多的細節或屏幕截圖? – 2016-11-30 16:37:32