Pular para o conteúdo
Visualizando 15 posts - 1 até 15 (de 18 do total)
  • Autor
    Posts
  • #91910
    faelsor
    Participante

      Fala pessoal estou cursando Sistemas da informação e no meu serviço tenho um grande problema!!! Tenho que mandar um relátorio de produtos vendidos e comprados que são controlados pela policia federal, so que essa consulta vai usar 4 tabelas, ja tentei inumeras formas mas nada deu certo. Voces podem me ajudar?

      As tabelas São essas.

      TNFISCAL
      NUM_CHAVE (PK)
      NUM_NFISCAL
      COD_CLIENTE
      COD_ORICANCEL
      DAT_EMISSÃO

      TCLIENTE
      COD_PESSOAFJ (PK)
      DES_RAZSOCIAL
      NUM_CGCCPF

      TNFITEM
      NUM_CHNOTA
      COD_PRODUTO
      NUM_CLAFISCAL

      TPRODUTO
      COD_PRODUTO (PK)
      COD_LINHA
      SIG_UNIDADE
      DES_PRODUTO

      Preciso colocar no relatorio todos esses campos menos as pk’s!

      Obrigado pela ajuda…

      #91913
      faelsor
      Participante

        Alias tem algumas condições o cod_linha = 1 que informa ser controlado esse produto , o cod_origcancel tem que ser null pois ela não pode ser cancelada e tem que ter data dentro do mes correspondente

        #91915
        fsitja
        Participante

          Estão faltando os relacionamentos entre essas tabelas. Você deve ter outras tabelas que implementem N:M ou estejam no meio do caminho por aí, de forma que possamos fazer os joins entre as tabelas Fiscal, Cliente e com as tabelas de Produto e Item.

          A unica FK que dá para identificar foi na relação TNFITEM.COD_PRODUTO = TPRODUTO.COD_PRODUTO

          O que é a tabela TNFISCAL, conceitualmente falando?

          #91916
          Avatar photoLeonardo Litz
          Participante

            Não tem mais coluna nestas tabelas não?

            #91917
            faelsor
            Participante

              Tentei fazer essa consulta mas não deu certo!

              SELECT TP.NUM_CLAFISCAL, TP.DES_PRODUTO, TC.DES_RAZSOCIAL, TC.NUM_CGCCPF, NF.NUM_NFISCAL, NF.DAT_EMISSAO, NFI.QTD_MATERIAL, TP.SIG_UNIDADE FROM TPRODUTO TP, TNFITEM NFI, TNFISCAL NF, TCLIENTE TC
              WHERE NF.NUM_CHAVE = NFI.NUM_CHNOTA AND COD_ORICANCEL IS NULL AND NF.COD_CLIENTE = TC.COD_PESSOAFJ AND NF.DAT_EMISSAO BETWEEN ’01/08/2009′ AND ’31/08/2009′ AND NFI.COD_PRODUTO = TP.COD_PRODUTO AND TP.COD_LINHA=’ 1′ ORDER BY TP.DES_PRODUTO, TP.COD_PRODUTO, NF.DAT_EMISSAO

              não sei se da pra entender os relacionamentos!

              #91920
              Avatar photoLeonardo Litz
              Participante

                Parece que os relacionamentos estão certos.

                Será que não é por causa do espaço em:


                TP.COD_LINHA=' 1'

                mude para


                tp.cod_linha = '1'

                Vlw Leonardo Litz

                #91922
                faelsor
                Participante

                  não ele é assim mesmo pois o campo tem 5 caracteres em branco

                  ele retorna alguns valores mas repetido!

                  #91923
                  faelsor
                  Participante

                    NO TNFISCAL fica as informações gerais da nota fiscal e a TNFITEM fica os produtos que contem na nfiscal!

                    #91926
                    Avatar photoLeonardo Litz
                    Participante

                      Mande listar todas as colunas e veja onde esta repetindo.

                      Select * from ….

                      #91927
                      faelsor
                      Participante

                        Não Consigo memoria insuficiente para realizar essa operação!

                        #91929
                        hudsona
                        Participante

                          Tem alguma coisa errada ai hein ….. rsrs

                          #91931
                          faelsor
                          Participante

                            Hudson realmente tem algo errado mas o meu problema é que não sei o que é! Vc pode me ajudar?

                            #91946
                            burga
                            Participante

                              [quote=”faelsor”:2cxsxfse]Tentei fazer essa consulta mas não deu certo!

                              SELECT TP.NUM_CLAFISCAL, TP.DES_PRODUTO, TC.DES_RAZSOCIAL, TC.NUM_CGCCPF, NF.NUM_NFISCAL, NF.DAT_EMISSAO, NFI.QTD_MATERIAL, TP.SIG_UNIDADE FROM TPRODUTO TP, TNFITEM NFI, TNFISCAL NF, TCLIENTE TC
                              WHERE NF.NUM_CHAVE = NFI.NUM_CHNOTA AND COD_ORICANCEL IS NULL AND NF.COD_CLIENTE = TC.COD_PESSOAFJ AND NF.DAT_EMISSAO BETWEEN ’01/08/2009′ AND ’31/08/2009′ AND NFI.COD_PRODUTO = TP.COD_PRODUTO AND TP.COD_LINHA=’ 1′ ORDER BY TP.DES_PRODUTO, TP.COD_PRODUTO, NF.DAT_EMISSAO

                              não sei se da pra entender os relacionamentos![/quote]

                              Não deu certo por que deu algum erro? Porque está faltando o FROM nesta consulta…
                              Só pra saber se você tentou executar esta consulta mesmo ou o erro foi na hora de colar aqui… 😀

                              #91947
                              hudsona
                              Participante

                                Verifica se você realmente executou a consulta corretamente conforme o burga disse,caso contrário posta o ORA e a mensagem de erro que retornou pra você, mas mesmo assim, a falta de um from em um instrução sql, não retornar erro de memória rs.

                                #91948
                                faelsor
                                Participante

                                  Burga esse codigo executa corretamente sem erros o from esta ai sim, pode verificar.

                                  Tentei desenvolver um outro codigo (abaixo). funciona! o problema é que está retornando duas linhas iguais! Essa seleção retorna varias linhas so que pra cada linha existe uma copia dela!

                                  SELECT TNFITEM.NUM_CLAFISCAL, TPRODUTO.DES_PRODUTO, TCLIENTE.DES_RAZSOCIAL, TNFISCAL.NUM_NFISCAL, TNFISCAL.DAT_EMISSAO, TNFITEM.QTD_MATERIAL, TPRODUTO.SIG_UNIDADE
                                  FROM (TNFISCAL INNER JOIN TNFITEM ON TNFISCAL.NUM_CHAVE = TNFITEM.NUM_CHNOTA INNER JOIN TCLIENTE ON TCLIENTE.COD_PESSOAFJ = TNFISCAL.COD_CLIENTE INNER JOIN TPRODUTO ON TNFITEM.COD_PRODUTO = TPRODUTO.COD_PRODUTO)
                                  WHERE TNFISCAL.COD_ORICANCEL IS NULL AND TNFISCAL.DAT_EMISSAO BETWEEN '01/09/2009' AND '30/09/2009' AND TNFISCAL.COD_EMPRESA = 1 AND TNFITEM.COD_LINHA = ' 1' ORDER BY TNFITEM.NUM_CLAFISCAL, TNFISCAL.DAT_EMISSAO

                                  Tentei postar os resultado desse select mas não deu certo 😀 !

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