Fórum Query com duas tabelas #28900
09/11/2007
0
Tenho 2 tabelas uma grava o pedido e outra grava os itens apos a geracao da Nota Fiscal, e nas duas tabelas tenho um campo DOCUMENTO(nota Fiscal), que eh gravado o numero da NF apos sua geracao, porem na tabela do pedido soh eh gravado o numero da NF se o pedido for cheio isto eh com todos os itens que foram digitados e na tabela de itens eh gravado o numero da NF independente se o pedido for cheio ou parcial.
Com isso preciso listar num Grid todos os pedidos com suas respectivas NF, fiz essa query, mas ela so me mostra os pedidos que foram geradas NF.
E nessa query mostra todos os pedidos, independente de terem sidos geradas NF, mas se o pedido foi atendido parcialmente e o sistema nao grava a NF na tabela de pedido ele nao mostra o numero da NF por ela ter sido parcial(soh eh gravada na tabela de ITENS).
Pergunto se tem como resolver isso numa query, sem ter que alterar outras coisas no sistema?
Com isso preciso listar num Grid todos os pedidos com suas respectivas NF, fiz essa query, mas ela so me mostra os pedidos que foram geradas NF.
SELECT DISTINCT(C5.C5_NUM) AS PEDIDO, C5.C5_TIPO AS TIPO, C5.C5_CLIENTE AS CLIENTE, TO_DATE(C5.C5_EMISSAO, ´YYYY/MM/DD´) AS EMISSAO, C5.C5_VEND1 AS VEND1, C5.C5_VEND2 AS VEND2, C5.C5_LIBEROK AS OK, C5.C5_NOTA AS NOTA_P, C5.C5_SERIE AS SERIE, D2.D2_DOC AS NOTA_C, D2.D2_SERIE AS SERIE, C5.C5_EMISSAO AS DATA FROM PEDIDO C5 INNER JOIN ITENS D2 ON ( D2.D_E_L_E_T_ <> ´*´ AND D2.D2_EMISSAO = C5.C5_EMISSAO AND D2.D2_CLIENTE = C5.C5_CLIENTE AND D2.D2_FILIAL = C5.C5_FILIAL AND D2.D2_PEDIDO = C5.C5_NUM ) WHERE C5.D_E_L_E_T_ <> ´*´ AND C5.C5_EMISSAO = ´20071109´ AND C5.C5_FILIAL = ´01´;
E nessa query mostra todos os pedidos, independente de terem sidos geradas NF, mas se o pedido foi atendido parcialmente e o sistema nao grava a NF na tabela de pedido ele nao mostra o numero da NF por ela ter sido parcial(soh eh gravada na tabela de ITENS).
SELECT DISTINCT(C5_NUM) AS PEDIDO, C5_TIPO AS TIPO, C5_CLIENTE AS CLIENTE, TO_DATE(C5_EMISSAO, ´YYYY/MM/DD´) AS EMISSAO, C5_VEND1 AS VEND1, C5_VEND2 AS VEND2, C5_LIBEROK AS OK, C5_NOTA AS NOTA, C5_SERIE AS SERIE, C5_EMISSAO AS DATA FROM PEDIDO C5 WHERE C5_FILIAL = ´01´ AND C5_EMISSAO = ´20071109´ AND D_E_L_E_T_ <> ´*´ ORDER BY C5_EMISSAO ASC;
Pergunto se tem como resolver isso numa query, sem ter que alterar outras coisas no sistema?
Claudio_f
Curtir tópico
+ 0
Responder
Posts
09/11/2007
Flyskin
Como na tabela de itens você sempre grava o número da nota, acredito que seria melhor realizar o select através desta tabela e realizar o join na tabela de pedidos para pegar os campos que você precisa.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)