Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma tabela Produtos:
Estabelecimento |Produto |Status
---------------------------------------
99123456 |Carro |01
99123456 |Moto |01
99123456 |Barco |02
99134567 |Moto |01
99134567 |Barco |01
99145678 |Carro |01
99156789 |Carro |01
Montei a consulta abaixo:
Select estabelecimento,
(case when produto='carro' then 'Sim'
when produto<>'carro' then 'Não' end) as Carro,
(case when produto='moto' then 'Sim'
when produto<>'moto' then 'Não' end) as Moto,
(case when produto='barco' then 'Sim'
when produto<>'barco' then 'Não' end) as Barco
from produtos
A Necessidade:
Preciso que o resultado seja assim
estabelecimento |carro |moto |barco
---------------------------------------
99123456 |Sim |Sim |Sim
99134567 |Não |Sim |Sim
99145678 |Sim |Não |Não
99156789 |Sim |Não |Não
O Problema:
o Resultado fica assim
estabelecimento |carro |moto |barco
---------------------------------------
99123456 |Sim |Não |Não
99123456 |Não |Sim |Não
99123456 |Não |Não |Sim
99134567 |Não |Sim |Não
99134567 |Não |Não |Sim
99145678 |Sim |Não |Não
99156789 |Sim |Não |Não
Já tentei usar o distinct sem sucesso.
>
SELECT estabelecimento,
(CASE WHEN CARRO > 1 THEN 'SIM' ELSE 'NAO' END) CARRO,
(CASE WHEN MOTO > 1 THEN 'SIM' ELSE 'NAO' END) MOTO,
(CASE WHEN BARCO > 1 THEN 'SIM' ELSE 'NAO' END) BARCO
FROM
(
Select estabelecimento,
SUM(case when produto='carro' then 1
when produto<>'carro' then 0 end) as Carro,
SUM(case when produto='moto' then 1
when produto<>'moto' then 0 end) as Moto,
SUM(case when produto='barco' then 1
when produto<>'barco' then 0 end) as Barco
from produtos
GROUP BY estabelecimento
)
Cara....é simplesmente isso que preciso, funcionou da forma que necessito.
Agradecido