Preciso de 1 registro por Id e para conseguir isso tentei com self join, instrução case e também tentei usar a função COALESCE, mas ainda estou obtendo vários registros para o mesmo cliente.
A abordagem abaixo é principalmente para colunas "status" e "ciclo de vida". Para as colunas sys1, sys2 e sys3, podemos considerar os mesmos valores: 1 registro por ID.
Preciso de 1 item de linha para cada ID, e ele deve considerar valores "Not null" entre as 3 colunas sys1, sys2 e sys3. Cada registro é único se o vemos, mas sempre temos a presença de sys1 a ser considerada. Se o valor de sys1 for nulo, então considere o valor de sys2, e se os valores de sys1 e sys2 forem nulos, então considere o valor de sys3.
Se os valores sys1, sys2 e sys3 não forem nulos e tiverem valores diferentes, considere sys1 como dados preferenciais
Entrada
Eu ia | sys1 | sys2 | sys3 | nome | status | vida útil |
---|---|---|---|---|---|---|
1 | 11 | Roy | Ativo | C | ||
1 | 33 | Roy | ||||
2 | 111 | Microfone | ||||
2 | 222 | Microfone | Ativo | C | ||
2 | 333 | Microfone | Ativo | C | ||
3 | 1111 | Jim | FC | |||
4 | 11111 | James | ||||
4 | 33333 | James | Inativo | FC |
Saída esperada
Eu ia | sys1 | sys2 | sys3 | nome | status | vida útil |
---|---|---|---|---|---|---|
1 | 11 | 33 | Roy | Ativo | C | |
2 | 111 | 222 | 333 | Microfone | Ativo | C |
3 | 1111 | Jim | FC | |||
4 | 11111 | 33333 | James | Inativo | FC |