У меня есть данные отчета в том, что структурированное как следует:Переупорядочивание данные в 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
Я хочу, чтобы изменить порядок на основе TOTAL 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 Я предпочитаю эти решения без использования объединений. Это было бы более или менее одинаковым решением, которое я бы придумал. –
Привет там ... Я обнаружил некоторую аномалию, если общее значение для каждого POTENTIAL_SAVING_VIEW одинаково, что вызывает проблему. Можем ли мы добавить еще один RecID в качестве другого вида. – dcpartners
@ dcalliances: Да, добавив 'RecID' к основному предложению SELECT' ORDER BY' (между 'rnk DESC' и' Total'), а также к предложению 'ORDER BY' функции ранжирования (после' rnk DESC'), похоже, устраняет проблему. (Обновлен мой ответ.) –