USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Consulta com If no MySQL
Maxcim
GUARULHOS
SP - BRASIL
Postada em 12/08/2005 14:05 hs            

     olá amigos,estou com um problema em uma consulta SQL.tenho uma tabela OBRAS e essa tabela tem 2 campos datas o DATA_PREV_INIC_OBRA e o DATA_PREV_TER_OBRA, sendo que o 2º só recebe dados quando a obra é iniciada, ficando nullo até o inicio da mesma, sempre funcionou beleza. Porem surgiu agora fazer uma estimativa de finalizaçoes de obras, coisa que antes só interessava as obras ativas e iniciadas, e tenho que fazer a consulta fazendo uma media de 30 dias nas obras que ainda não iniciaram.tentei fazer o seguinte ... montar um comando IF na consulta, se o termino previsto não é nulo traz o valor de DATA_PREV_TER_OBRA senão traz o valor de DATA_PREV_inic_OBRA + 30 dias.

O camando IF rodou legal, porem não sei como somar 30 dias a uma data na propria consulta, deste modo apresentado abaixo ele apenas repete o valor sem adicionar 30.

SELECT codigoped,data_prev_inic_obra ,data_prev_ter_obra,if (data_prev_ter_obra IS NULL, DATE(data_prev_inic_obra + 30),data_prev_ter_obra) AS statusDataFROM tbl_ObrasWHERE ( (tbl_obras.Data_Prev_Inic_obra) BETWEEN '2005-01-01' AND '2005-12-31')

exemplo:

data_prev_Inic_obra | data_prev_ter_Obra | StatuData                                01/01/05                    30/01/05                  30/01/05                                     01/01/05                       null                       30/01/05 se achou o valor null add 30 dias a data de inicio..

TÓPICO EDITADO
   
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 13/08/2005 19:25 hs         
No MySQL, não tem "IF" mas vc pode fazer a mesma coisa usando o "Selec...case...when...end" Veirifque a sintaxe e adapte o comando às suas necessidades.
     
Maxcim
GUARULHOS
SP - BRASIL
Postada em 13/08/2005 20:29 hs            
tem sim, Kerplunk, uso com alguma frequencia o IF embutido na na query, só não consegui executar uma função na propria query.
 
SELECT codigoped,data_prev_inic_obra ,data_prev_ter_obra,if (data_prev_ter_obra IS NULL,  DATE(data_prev_inic_obra + 30),data_prev_ter_obra) AS statusDataFROM tbl_Obras WHERE ( (tbl_obras.Data_Prev_Inic_obra) BETWEEN  '2005-01-01' AND  '2005-12-31')
 
esta query funciona, somente a parte em vermelha que não executa
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página