数据我有报表数据是结构化如下:重新排列在TSQL
RecID | ReportView1 | Name | Value | Total
1 | CURRENT_VIEW | 'Test1' | 10 | 20
1 | PROPOSED_VIEW | 'Test11'| 20 | 30
1 | POTENTIAL_SAVING_VIEW | null | null | 80
2 | CURRENT_VIEW | 'Test1' | 10 | 20
2 | PROPOSED_VIEW | 'Test22'| 25 | 35
2 | POTENTIAL_SAVING_VIEW | null | null | 70
3 | CURRENT_VIEW | 'Test1' | 10 | 20
3 | PROPOSED_VIEW | 'Test33'| 45 | 65
3 | POTENTIAL_SAVING_VIEW | null | null | 90
我想基于总DECS重新排序,但只适用于ReportView1 =“POTENTIAL_SAVING_VIEW”
所以数据是:
NewRecID | RecID | ReportView1 | Name | Value | Total
1 | 3 | CURRENT_VIEW | 'Test1' | 10 | 20
1 | 3 | PROPOSED_VIEW | 'Test33' | 45 | 65
1 | 3 | POTENTIAL_SAVING_VIEW | null | null | 90
2 | 1 | CURRENT_VIEW | 'Test1' | 10 | 20
2 | 1 | PROPOSED_VIEW | 'Test11' | 20 | 30
2 | 1 | POTENTIAL_SAVING_VIEW | null | null | 80
3 | 2 | CURRENT_VIEW | 'Test1' | 10 | 20
3 | 2 | PROPOSED_VIEW | 'Test22' | 25 | 35
3 | 2 | POTENTIAL_SAVING_VIEW | null | null | 70
我大概可以使用加入withiin本身,但我只是想知道它可能是有一个选择。
感谢
+1我更喜欢这些解决方案,而不使用连接。这或多或少都是我想出的相同解决方案。 – 2012-02-16 08:34:03
嗨那里...我发现一些异常,如果每个POTENTIAL_SAVING_VIEW的总数是相同的,它导致一个问题。我们可以把一些额外的RecID作为另一种类型。 – dcpartners 2012-02-17 05:57:24
@dcalliances:是的,向主SELECT的ORDER BY子句(在'rnk DESC'和'Total'之间)以及排名函数的ORDER BY'子句中添加'RecID'(在'rnk DESC之后' )似乎解决了这个问题。 (更新了我的答案。) – 2012-02-17 06:20:22