Pular para o conteúdo
Visualizando 8 posts - 1 até 8 (de 8 do total)
  • Autor
    Posts
  • #81551
    Avatar de rogsousaprogsousap
    Participante

      Olá pessoal

      Tenho duas Tabelas RH r e RegOcorrencia Reg, e gostaria de apagar
      todos os registros de ocorrencias que o campo Reg.DTINICOCORR for maior que o campo r.DTDEMISSAO e as tabelas tem em comum o campo
      codMatricula.

      Fiz um select para demonstrar


      Select R.nome,R.dtdemissao,RG.DTINICIOOCORR From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
      AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO

      NOME DTDEMISSAO DTINICIOOCORR
      VALQUIRIA PEREIRA 20070909 20070910
      VALQUIRIA PEREIRA 20070909 20070911
      VALQUIRIA PEREIRA 20070909 20070912
      VALQUIRIA PEREIRA 20070909 20070915
      VALQUIRIA PEREIRA 20070909 20070916

      Mas o meu delete não funciona, onde eu estou errando


      delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
      AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO


      [/code][/quote]

      #81552
      Avatar de IshiiIshii
      Participante

        Olá,

        Qual a mensagem de erro, se é que ela ocorre?

        []s Ishii

        #81553
        Avatar de leo_jfleo_jf
        Participante

          Cara,
          Se não funciona, qual o erro que é gerado quando vc executa a query?
          Passa o erro que fica mais fácil.
          Veja as restrições antes de mais nada. PK, FK.
          Passa o erro que fica mais facil.

          #81554
          Avatar de rogsousaprogsousap
          Participante

            O Erro é esse abaixo, o * aparece na ,

            delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
            *

            ERRO na linha 1:
            ORA-00933: SQL command not properly ended

            #81555
            Avatar de rogsousaprogsousap
            Participante

              Executo a query.

              SQL> delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
              2 AND R.codMatricula=’151424′ AND RG.DTINICIOOCORR > R.DTDEMISSAO
              3 ;

              O Erro é esse abaixo.

              delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
              *
              ERRO na linha 1:
              ORA-00933: SQL command not properly ended

              #81556
              Avatar de vierivieri
              Participante

                Não é erro de lógica …
                Isso é problema na sintaxe, verifique se está vindo algum caracter sujo da onde vc está copiando o comando.

                #81560
                Avatar de rogsousaprogsousap
                Participante

                  Já verifiquei e o erro continua o mesmo

                  Vejam se eu me expressei corretamente,

                  Eu quero deletar todos os registros da Tabela REGOCORRENCIA que a data de inico seja maior do que a data demissao.


                  delete From REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
                  AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO

                  #81561
                  Avatar de IshiiIshii
                  Participante

                    Olá,

                    Tente assim:


                    delete from REGOCORRENCIA
                    where codMatricula in (
                    select R.codMatricula from
                    REGOCORRENCIA RG, RH R WHERE R.codMatricula = RG.codMatricula
                    AND R.codMatricula='151424' AND RG.DTINICIOOCORR > R.DTDEMISSAO)

                    Infelizmente será necessário a subquery…
                    []s Ishii

                  Visualizando 8 posts - 1 até 8 (de 8 do total)
                  • Você deve fazer login para responder a este tópico.
                  plugins premium WordPress