Desejo dinamizar INFO2 em 2 colunas. Os dados do INFO3 devem ser ajustados de acordo após o PIVOT.
O desafio é que também tenho uma coluna de data, da qual quero tirar o MAX. O MAX(Date) também deve ser agrupado por (lot_no, mcid).
Existe uma maneira de fazer isso de uma só vez? Sem recorrer a tabelas temporárias?
Você pode fazer isso facilmente sem usar
PIVOT
. Seus dados:Agora o resultado:
Isso é simplesmente
GROUP BY
escolher o valor necessário paraINFO21
eINFO22
transformar valores desnecessários emNULL
, mantendo o valor necessário comMAX
(porque precisamos usar uma função agregada aqui).(Seção abaixo adicionada pelo autor da pergunta)
Ao tentar entender a resposta acima, achei útil estudar a consulta abaixo como uma etapa intermediária.
Isto dá,
Isso é antes do "group-by" usado na resposta acima.
Também é útil que valores nulos sejam excluídos automaticamente, por funções de agregação ORACLE como MAX. Facilita ignorá-los ao mesclar linhas.