Essa dica é bem interessante, pois o sql 2000 não possui a função PIVOT que é utilizada no SQL 2005.
Então vamos lá.Eu tenho a seguinte tabela:
Eu preciso retornar os dados assim:
A minha sugestão é a seguinte:
CREATE TABLE #Produto(
id_produto INT,
cor VARCHAR(10),
qtde INT
)
INSERT INTO #Produto (id_produto,cor,qtde) VALUES (1030,'azul',10)
INSERT INTO #Produto (id_produto,cor,qtde) VALUES (1030,'verde',5)
INSERT INTO #Produto (id_produto,cor,qtde) VALUES (1030,'amarelo',3)
SELECT DISTINCT id_produto,MAX(azul) AS azul,MAX(verde) AS verde,MAX(amarelo) AS amarelo FROM (
SELECT id_produto,
azul = ( CASE cor WHEN 'azul' THEN QTDE END),
verde = ( CASE cor WHEN 'verde' THEN QTDE END),
amarelo= ( CASE cor WHEN 'amarelo' THEN QTDE END)
FROM #produto
) AS Tabela
GROUP BY ID_produto
DROP TABLE #produto
Resultado:
Obrigado!!
ResponderExcluir