JoaoVM 0 Denunciar post Postado Dezembro 16, 2013 Boas malta,Tenho um problema, tenho umas vista que me devolve um valor no campo soma_in e só mais tarde atualiza o campo da soma_out, mas enquanto não não é atualizado esse valor fica a NULL e o meu objetivo é que fique a 00:00:00, alguém sabe como posso fazer?Basicamente quero definir o meu campo tempo_out como um campo com valor por defeito. É possível fazer isso numa vista? CREATE OR REPLACE VIEW PERIODO_5 AS SELECT sec_to_time(sum(time_to_sec(E.P5))) AS tempo_in, (SELECT sec_to_time(sum(time_to_sec(S.P5))) FROM transacoes_bmw AS S WHERE S.evento = 'S' AND S.data = timestamp(current_date())) AS tempo_out FROM transacoes_bmw AS E WHERE E.evento = 'E' AND E.data = timestamp(current_date()) GROUP BY E.data; Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Dezembro 16, 2013 Este texto foi traduzido por algum tradutor automático ?! Tentou o COALESCE ? Compartilhar este post Link para o post Compartilhar em outros sites
JoaoVM 0 Denunciar post Postado Dezembro 16, 2013 Não amigo sou português de Portugal :natalbiggrin: Não estou a perceber como poderia usar aqui..podes ser mais especifico? Imagina, esta vista vai fazer a soma de tempos totais de entradas..se 3 empregados entraram numa linha de produção então o tempo_in é 03:00:00, mas se ainda não saíram o tempo deveria ser 00:00:00 e em vez disso ele retorna NULL. depois quando faço a diferença entre o (tempo_in - tempo_out) não me devolve as 03:00:00, devolve 0. Já consegui, O segredo era colocar antes do campo no select IFNULL( CAMPO, (valor por defeito)) as .... Ficou assim: CREATE OR REPLACE VIEW T_PERIODO_9 AS SELECT IFNULL(sec_to_time(sum(time_to_sec(E.P9))),'00:00:00') AS tempo_in, (SELECT IFNULL(sec_to_time(sum(time_to_sec(S.P9))),'00:00:00') FROM transacoes_bmw AS S WHERE S.evento = 'S' AND S.data = timestamp(current_date())) AS tempo_out FROM transacoes_bmw AS E WHERE E.evento = 'E' AND E.data = timestamp(current_date()) GROUP BY E.data; Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Dezembro 16, 2013 Desculpe, estranhei o "vista" , o "defeito". Em Portugal se preserva mais a língua, aqui temos uma tendência a usar a terminologia do Tio Sam ... COALESCE ou ISNULL acho que tem o mesmo efeito. Mas, se revolveu deixa quieto ... :) Compartilhar este post Link para o post Compartilhar em outros sites
JoaoVM 0 Denunciar post Postado Dezembro 16, 2013 Obrigado na mesma ;) Compartilhar este post Link para o post Compartilhar em outros sites