2017-03-20 47 views
1

我正在使用SSRS 3.0和SharePoint 2013.我正在日期字段上排序SSRS報告。我使用表達式將一些日期作爲字母數字(即「N/A」,「正在進行」)插入。客戶希望行按日期排序,最早的日期排在第一位,「N/A」和「持續」日期最後。 Sort函數首先對alpha進行排序,然後是其他包含日期的行。我如何獲得排序表達式來排序日期最早到最新,然後將「N/A」和「持續」日期排在最後?謝謝!在包含字母數字的日期字段上進行SSRS排序

回答

0

您可以在SQL或創建一個計算排序表達式那個報告。我會舉一個在報告中做的例子,因爲這就是你問的問題。

首先,進入您的組屬性,然後選擇排序選項卡。我們將添加兩個排序條件。點擊「添加」按鈕,然後點擊表達式按鈕。

對於第一個條件,我們將分隔日期和文本。所以表達式應該是這樣的:

=IIf(IsDate(Fields!MyColumn.Value), 1, 2) 

添加第二個排序條件並將其設置爲按降序對列進行排序。這會將日期放在首位,並將文字放在後面。

+0

太棒了!像魅力一樣工作 - 非常感謝你! –

+0

@KimFarrell樂於提供幫助。請標記爲已回答。 – StevenWhite

+0

完成 - 再次感謝您! –

0

將結果集分爲兩部分,一部分用於純日期結果,其餘部分用於'進行中'&'N/A'。將它們組合使用UNION

,這將是本查詢:

Select col1, col2 
From table 
where ... --condition to filter out those rows with real date 
order by date 

UNION 

Select col1, case when col2 ... then 'Ongoing' when col2 ... then 'N/A' 
From table 
where ... --condition to filter out those rows need to be replace with characters 
--not necessary using `order by for this part` 
0

您可以簡單地使用ORDER BY子句如下:

SELECT MyDate FROM MyDateTable 
ORDER BY 
    CASE WHEN MyDate IN ('n/a','Ongoing') THEN 1 ELSE 0 END, 
    MyDate 
相關問題