Obrigado! Funcionou nas duas formas!
Att.,
Thiago
- Mensagem original
De: Wendel Muniz de Oliveira [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quinta-feira, 25 de Setembro de 2008 14:26:41
Assunto: Re: [oracle_br] Comando CASE com Select...campo tipo DATA
oi Thiago, no lugar do case vc pode usar a instrucao DECODE o teu select
fica mais limpo.
SELECT OS.TERM_ID,
COUNT(DECODE( TO_CHAR(TR. TSTAMP,'DD/ MM/') ,'01/05/2008' ,1,0)) 01
a sintaxe é a seguinte: decode(campo a ser analisado,valor
possivel1,resultado 1,.,valor possivelN,resultado N,resultado a ser
mostrado se nenhuma das anteriores atender)
2008/9/25 Marcelo [EMAIL PROTECTED] e.com.br
SELECT OS.TERM_ID,
COUNT(CASE WHEN TO_CHAR(TR.TSTAMP, 'DD/MM/' ) = '01/05/2008' THEN 1 ELSE
0
END) 01,
Marcelo Alberto Lauschner
Desenvolvimento de Sistemas
Auto Pratense Ltda
* - Fone: (0XX54) 3242-3620
* - Fax: (0XX54) 3242-3648
* - E-mail: mailto:[EMAIL PROTECTED] e.com.brmarcelo%40autoprat ense.com.
br
[EMAIL PROTECTED] e.com.br marcelo%40autoprat ense.com. br
* - WWW: www.autopratense. com.br http://www.autoprat ense.com. br/
_
De: [EMAIL PROTECTED] os.com.br oracle_br%40yahoog rupos.com. br [mailto:
[EMAIL PROTECTED] os.com.br oracle_br%40yahoog rupos.com. br] Em
nome de Thiago
Enviada em: quinta-feira, 25 de setembro de 2008 12:12
Para: [EMAIL PROTECTED] os.com.br oracle_br%40yahoog rupos.com. br
Assunto: [oracle_br] Comando CASE com Select...campo tipo DATA
Pessoas,
Estou com uma dúvida sobre o comando CASE dentro do select.
Minha intenção no comando abaixo, é mostrar uma tabela com os IDs do lado
esquerdo (até aí tudo bem) e com várias colunas, cada uma com o número de
registros do dia correspondente, sendo cada coluna um dia do mês. Aí
embaixo
está o que eu tenho já...não coloquei a parte do FROM nem do WHERE, pois
minha dúvida está somente na parte de cima mesmo.
Reparem que coloquei duas linhas do count com TO_CHAR e o restante com
TO_DATE. Tentei dessas duas formas, mas o oracle está retornando 0 linhas
para estes cases.
Se vocês puderem me ajudar a tratar um dado do tipo DATA dentro do case, eu
agradeço. Realmente estou um pouco perdido. Caso haja alguma forma melhor
de
fazer isso (com um comando select), por favor me ajudem. Segue o comando
abaixo:
SELECT PS.TERM_ID,
COUNT(CASE TO_CHAR(TR.TSTAMP) WHEN '01/05/2008' THEN 1 ELSE NULL END) 01,
COUNT(CASE TO_CHAR(TR.TSTAMP) WHEN '02/05/2008' THEN 1 ELSE NULL END) 02,
COUNT(CASE TR.TSTAMP WHEN TO_DATE('03/ 05/2008', 'dd/mm/' ) THEN 1 ELSE
NULL END) 03,
COUNT(CASE TR.TSTAMP WHEN TO_DATE('04/ 05/2008', 'dd/MM/' ) THEN 1 ELSE
NULL END) 04,
COUNT(CASE TR.TSTAMP WHEN TO_DATE('05/ 05/2008', 'dd/mm/' ) THEN 1 ELSE
NULL END) 05,
COUNT(CASE TR.TSTAMP WHEN TO_DATE('06/ 05/2008', 'dd/mm/' ) THEN 1 ELSE
NULL END) 06
Obrigado!!
Thiago
Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
cara @ymail.com ou @rocketmail. com.
http://br.new. http://br.new. mail.yahoo. com/addresses
mail.yahoo.com/ addresses
[As partes desta mensagem que não continham texto foram removidas]
[As partes desta mensagem que não continham texto foram removidas]
[As partes desta mensagem que não continham texto foram removidas]
Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses
[As partes desta mensagem que não continham texto foram removidas]