- Este tópico contém 17 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por
faelsor.
-
AutorPosts
-
7 de janeiro de 2010 às 9:30 pm #91910
faelsor
ParticipanteFala 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ÃOTCLIENTE
COD_PESSOAFJ (PK)
DES_RAZSOCIAL
NUM_CGCCPFTNFITEM
NUM_CHNOTA
COD_PRODUTO
NUM_CLAFISCALTPRODUTO
COD_PRODUTO (PK)
COD_LINHA
SIG_UNIDADE
DES_PRODUTOPreciso colocar no relatorio todos esses campos menos as pk’s!
Obrigado pela ajuda…
7 de janeiro de 2010 às 9:34 pm #91913faelsor
ParticipanteAlias 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
7 de janeiro de 2010 às 9:36 pm #91915fsitja
ParticipanteEstã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?
7 de janeiro de 2010 às 9:38 pm #91916Leonardo Litz
ParticipanteNão tem mais coluna nestas tabelas não?
7 de janeiro de 2010 às 9:39 pm #91917faelsor
ParticipanteTentei 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_EMISSAOnão sei se da pra entender os relacionamentos!
7 de janeiro de 2010 às 9:42 pm #91920Leonardo Litz
ParticipanteParece 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
7 de janeiro de 2010 às 9:44 pm #91922faelsor
Participantenão ele é assim mesmo pois o campo tem 5 caracteres em branco
ele retorna alguns valores mas repetido!
7 de janeiro de 2010 às 9:47 pm #91923faelsor
ParticipanteNO TNFISCAL fica as informações gerais da nota fiscal e a TNFITEM fica os produtos que contem na nfiscal!
7 de janeiro de 2010 às 9:53 pm #91926Leonardo Litz
ParticipanteMande listar todas as colunas e veja onde esta repetindo.
Select * from ….
7 de janeiro de 2010 às 9:55 pm #91927faelsor
ParticipanteNão Consigo memoria insuficiente para realizar essa operação!
7 de janeiro de 2010 às 10:24 pm #91929hudsona
ParticipanteTem alguma coisa errada ai hein ….. rsrs
7 de janeiro de 2010 às 10:50 pm #91931faelsor
ParticipanteHudson realmente tem algo errado mas o meu problema é que não sei o que é! Vc pode me ajudar?
8 de janeiro de 2010 às 4:16 am #91946burga
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_EMISSAOnã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… 😀8 de janeiro de 2010 às 2:51 pm #91947hudsona
ParticipanteVerifica 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.
8 de janeiro de 2010 às 3:05 pm #91948faelsor
ParticipanteBurga 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_EMISSAOTentei postar os resultado desse select mas não deu certo 😀 !
-
AutorPosts
- Você deve fazer login para responder a este tópico.