Jump to content

bruno.291193

Members
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

0 Comum

About bruno.291193

  1. Olá, Estou com a seguinte dúvida: Na criação de minha procedure, os parâmetros de Data Inicial e Final não podem vir nulos. Eu criei a verificação abaixo para isso: " IF @DT_INICIAL AND @DT_FINAL IS NULL BEGIN RAISERROR('ERRO = DATA INICIAL E FINAL NAO INFORMADAS.',1,1) END; " Porém, ao meu ver, é uma verificação desnecessária, ou seja, se eu criar os parâmetros @DT_INICIAL e @DT_FINAL como NOT NULL, o próprio SQL irá retornar o erro dizendo que o parâmetro é obrigatório. Mas, não sei como realizar a criação desses parâmetros como NOT NULL, ao realizar o código abaixo, o SQL retorna o erro (também abaixo): ( DECLARE @DT_INICIAL DATE NOT NULL, DECLARE @DT_FINAL DATE NOT NULL ) Retorno do SQL: Msg 11555, Level 15, State 1, Procedure PRC_MTCORP_MODU_ABAS_BOBI_QUAL_CONS, Line 29 O parâmetro '@DATA_INICIAL' foi declarado como NOT NULL. Os parâmetros NOT NULL têm suporte apenas com procedimentos armazenados compilados de forma nativa. Pergunta: Existe meios de se criar o parâmetro como NOT NULL? Detalhe: Criando o parâmetro sem nenhuma informação, ou seja, DECLARE "@DT_INICIAL DATE", na execução o SQL aceita o parâmetro como NULL, sendo necessária minha verificação inicial. Abraço.
  2. bruno.291193

    comando CAST e SUM

    Bom dia, estou tendo problemas com o seguinte select: SELECT COUNT(RODLCM.HORDUR) FROM RODLCM INNER JOIN RODMOT ON RODLCM.CODMOT = RODMOT.CODMOT WHERE RODLCM.CODCUR = 9 AND MO.CODMOT=RODLCM.CODMOT GROUP BY RODLCM.CODMOT Onde: -RODLCM = Tabela de Lançamento de Cursos de Motoristas -rodlcm.hordur = Duração de cada curso (em horas = 00:00) -rodlcm.codmot = Código do motorista que foi feito o lançamento -rodlcm.codcur = Código do Curso que foi lançado para o motorista -RODMOT = Tabela de Motoristas -rodmot.codmot = Código do Motorista Preciso fazer uma somatória de horas de duração de determinado curso que cada motorista já fez, no caso do curso '9'. Da maneira que acima, está me devolvendo quantas vezes ele já fez o curso do tipo 9, no caso 4 vezes. Porém cada um desses cursos teve uma duração de X horas. Preciso que me traga, por exemplo, 20 horas de curso no formato hora (00:00:00). Já tentei utilizar o comando SUM, porém deu erro de conversão, e não sou muito familiarizado com o comando CAST. Obrigado.
  3. bruno.291193

    Converter número em horas

    Bom dia, estou tendo problemas com o seguinte select: SELECT COUNT(RODLCM.HORDUR) FROM RODLCM INNER JOIN RODMOT ON RODLCM.CODMOT = RODMOT.CODMOT WHERE RODLCM.CODCUR = 9 AND MO.CODMOT=RODLCM.CODMOT GROUP BY RODLCM.CODMOT Onde: -RODLCM = Tabela de Lançamento de Cursos de Motoristas -rodlcm.hordur = Duração de cada curso (em horas = 00:00) -rodlcm.codmot = Código do motorista que foi feito o lançamento -rodlcm.codcur = Código do Curso que foi lançado para o motorista -RODMOT = Tabela de Motoristas -rodmot.codmot = Código do Motorista Preciso fazer uma somatória de horas de duração de determinado curso que cada motorista já fez, no caso do curso '9'. Da maneira que acima, está me devolvendo quantas vezes ele já fez o curso do tipo 9, no caso 4 vezes. Porém cada um desses cursos teve uma duração de X horas. Preciso que me traga, por exemplo, 20 horas de curso no formato hora (00:00:00). Já tentei utilizar o comando SUM, porém deu erro de conversão, e não sou muito familiarizado com o comando CAST. Obrigado.
  4. bruno.291193

    SELECT COUNT dentro de outro SELECT

    Fabiano, Consegui resolver, muito obrigado pela ajuda e consideração. Até uma próxima. =)
  5. bruno.291193

    SELECT COUNT dentro de outro SELECT

    Bom dia Fabiano, primeiramente gostaria de agradecer pela ajuda. Desculpe, mas não estou muito familiarizado com functions em SQL, será que isso resolveria meu problema? Eu preciso, especificamente, exibir os primeiros campos e mais os dois de contagem, no mesmo result e ao mesmo tempo. Será que isso é possível? Muito obrigado.
  6. bruno.291193

    SELECT COUNT dentro de outro SELECT

    Bom dia, Estou com dificuldade em fazer um select count (na verdade são 2) dentro de outro select: Preciso listar todos os funcionários com os devidos campos, e os dois últimos campos são: contador de faltas justificadas (código 94) e outro campo contando faltas não justificadas (código 95). O select dos primeiros campos da listagem é: SELECT MO.CODMOT, MO.NOMMOT, MO.CODFOL, CL.DESCRI CLASSIFICACAO, CC.DESCRI CENTRO_CUSTO FROM RODMOT MO INNER JOIN RODCUS CC ON MO.CODCUS=CC.CODCUS INNER JOIN RODCMO CL ON MO.CODCMO=CL.CODCMO WHERE MO.CODMOT='626' (Exemplo de motorista). O select que conta as faltas (da tabela RODCAM_HIS=Histórico de advertência) é: SELECT RODCAM_HIS.CODMOT, COUNT(RODCAM_HIS.CODMTV) AS MOTIVO FROM RODCAM_HIS INNER JOIN RODMOT ON RODCAM_HIS.CODMOT = RODMOT.CODMOT WHERE RODCAM_HIS.CODMTV = 94 (Faltas justificadas) GROUP BY RODCAM_HIS.CODMOT Esse segundo select me retorna os motoristas que tenham faltas justificadas, e no segundo campo quantas faltas eles tem. Porém ele não me traz todos os funcionários, apenas os que tem essa falta, eu gostaria de estar exibindo todos, independentemente de existir esse registro. Tentei trocar o INNER JOIN por LEFT, RIGHT, FULL, OUTER's e não obtive nenhuma alteração no SLEECT. O segundo problema é que não estou conseguindo inserir o segundo SELECT dentro do primeiro, para listar TODOS os motoristas, tendo faltas ou não, e os dois últimos campos sendo "FALTAS JUSTIFICADAS" e "FALTAS NÃO JUSTIFICADAS". Muito obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.