Eu tenho uma consulta que retorna resultados como este:
MyValue MyGroup
_______________|_______________
56 | I
_______________|_______________
12 | I
_______________|_______________
56 | II
_______________|_______________
12 | II
_______________|_______________
56 | III
_______________|_______________
56 | IV
_______________|_______________
56 | V
_______________|_______________
12 | V
_______________|_______________
Eu preciso converter isso em algo assim:
ColA ColB ColC ColD Count
_______________|_______________|_______________|_______________|_______________
12 | 56 null null 3
_______________|_______________|_______________|_______________|_______________
56 | null null null 2
_______________|_______________|_______________|_______________|_______________
Eu sei que poderia configurar um iterador e percorrer todas as linhas da minha tabela e construir esse resultado.
Mas acho que há outra maneira "baseada em conjunto". Talvez um "Cross Apply" ou "Pivot".
Mas não importa quantas vezes eu leio os documentos ou veja exemplos para eles, não consigo entender o suficiente para escrever os meus.
Alguém tem uma sugestão?
NOTA: Caso seja importante, suponha que minha consulta para obter os primeiros resultados seja assim:
select MyValue, MyGroup
from SomeTable
(Na verdade, é um conjunto complexo de CTEs, mas posso adicionar outra camada, se necessário.)
Parece uma abordagem mais simples:
Isso é sobre o que eu estava procurando:
Ele retorna:
O que é próximo o suficiente do que eu precisava.