DECLARE @TMP TABLE (NU_DOC INT, IC_ACEITO CHAR(1))
INSERT INTO @TMP (NU_DOC, IC_ACEITO, VALOR) VALUES (1,'A')
INSERT INTO @TMP (NU_DOC, IC_ACEITO, VALOR) VALUES (2,'C')
INSERT INTO @TMP (NU_DOC, IC_ACEITO, VALOR) VALUES (3,'')
SELECT NU_DOC, IC_ACEITO, CASE rtrim(ltrim(IC_ACEITO))
WHEN 'A' THEN 'Aceito'
WHEN 'C' THEN 'Cancelado'
ELSE 'Não avaliado'
END
FROM @TMP
Exemplo 02
DECLARE @TAB TABLE (CODIGO VARCHAR(10), MES VARCHAR(10) , VALOR DECIMAL(12,2))
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '012003', 415235.25)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '022003', 15235.45)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '032003', 41535.78)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0101', '042003', 41523.20)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '012003', 8564.25)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '022003', 758.45)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '032003', 35.78)
INSERT INTO @TAB (CODIGO, MES , VALOR ) VALUES ('0201', '042003', 23.20)
SELECT * FROM @TAB
SELECT CODIGO,
SUM(CASE SUBSTRING(MES,1,2) WHEN '01' THEN VALOR ELSE 0 END) AS DIA1,
SUM(CASE SUBSTRING(MES,1,2) WHEN '02' THEN VALOR ELSE 0 END) AS DIA2,
SUM(CASE SUBSTRING(MES,1,2) WHEN '03' THEN VALOR ELSE 0 END) AS DIA3,
SUM(CASE SUBSTRING(MES,1,2) WHEN '04' THEN VALOR ELSE 0 END) AS DIA4
FROM @TAB
GROUP BY CODIGO
SELECT P1.*, (P1.DIA1 + P1.DIA2 + P1.DIA3 + P1.DIA4) AS TOTAL_ANO
FROM (SELECT CODIGO,
SUM(CASE SUBSTRING(MES,1,2) WHEN '01' THEN VALOR ELSE 0 END) AS DIA1,
SUM(CASE SUBSTRING(MES,1,2) WHEN '02' THEN VALOR ELSE 0 END) AS DIA2,
SUM(CASE SUBSTRING(MES,1,2) WHEN '03' THEN VALOR ELSE 0 END) AS DIA3,
SUM(CASE SUBSTRING(MES,1,2) WHEN '04' THEN VALOR ELSE 0 END) AS DIA4
FROM @TAB P
GROUP BY CODIGO) AS P1
Considerações finais:
Esta é somente um das formas de como o CASE pode ser utilizado.
No exemplo 02 mostra como simular uma consulta referência cruzada através de SQL puro (sei que não muita vantagem com as ferramentas de DW, mas fazer-se-a o que? :o ) inspirado no Books Online
Irei acrescentando outros exemplos com o tempo.
E lembrem-se estes exemplos não passam de elocubrações.
Fonte/Autor/link
AUTOR: "Jothaz"
Dúvidas, criticas, contribuições, correções e adições serão bem vindas.
Pergunta
jothaz
Exemplo 01
Exemplo 02Considerações finais:
Esta é somente um das formas de como o CASE pode ser utilizado.
No exemplo 02 mostra como simular uma consulta referência cruzada através de SQL puro (sei que não muita vantagem com as ferramentas de DW, mas fazer-se-a o que? :o ) inspirado no Books Online
Irei acrescentando outros exemplos com o tempo.
E lembrem-se estes exemplos não passam de elocubrações.
Fonte/Autor/link
AUTOR: "Jothaz"
Dúvidas, criticas, contribuições, correções e adições serão bem vindas.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.