Problemão com uma SQL, alguem me ajuda aew!

12/12/2006

0

SQL

Tenho que fazer uma consulta de inspeção em meus fornecedores para saber se o desconto que foi combinado por fabricante de produto esta sendo respeitado. Para pegar os descontos das condições e das notas eu criei 2 funções em separados para agilizar a SQL. Só que ao executar a SQL preciso informar somente os produtos onde os descontos estão divergentes (diferentes) como fazer isso? Olhem a SQLe vejam se conseguem entender...

Agradeço qualquer idéia.

SELECT p.id_produto,
       p.prodcodigo,
       p.prodnome,
       l.id_laboratorio,
       l.labonomefantasia,
       (SELECT Pedido_PegaDesconto_Condicao(p.id_produto, [:Condicao], [:idFornecedor])) AS desconto_condicao,
       (SELECT Pedido_PegaDesconto_NotaFiscal(p.id_produto, [:idFornecedor1], [:Condicao1], [:dataInicial1], [:dataFinal1])) AS desconto_nota
FROM notafiscal n,
     notafiscalxprodutos np,
     pedidos pe,
     produtos p LEFT OUTER JOIN laboratorios l
                ON p.laboratorios_id_laboratorio = l.id_laboratorio
WHERE pe.condicao LIKE [:Condicao2] AND
      pe.fornecedores_id_fornecedor = [:idFornecedor2] AND
      pe.id_pedido = n.pedidos_id_pedido AND
       n.notadtcadastro BETWEEN [:dataInicial2] AND [:dataFinal2] AND
       n.id_notafiscal = np.notafiscal_id_notafiscal AND
      np.produtos_id_produto = p.id_produto AND
         desconto_condicao < 
         desconto_nota
ORDER BY p.prodnome,
         p.prodcodigo



Henry Lima

Henry Lima

Responder

Posts

12/12/2006

Motta

Publique s descricao das tabelas envolvidas , fica mais fácil pensar a solução


Responder

12/12/2006

Henry Lima

  Tabela: Laboratorios

  ´ID_LABORATORIO´ double NOT NULL auto_increment,
  ´LABONOME´ varchar(100) NOT NULL,
  ´LABONOMEFANTASIA´ varchar(30) NOT NULL,

------

Tabela: Produtos

  ´ID_PRODUTO´ double NOT NULL auto_increment,
  ´TIPOSPRODUTOS_ID_TIPOPRODUTO´ double NOT NULL,
  ´LABORATORIOS_ID_LABORATORIO´ double default NULL,

------

Tabela: NotaFiscal

  ´ID_NOTAFISCAL´ double NOT NULL auto_increment,
  ´NOTANUMERO´ varchar(10) NOT NULL default ´´,
  ´NOTADTCADASTRO´ date NOT NULL default ´0000-00-00´,
  ´FUNCIONARIOS_ID_FUNCIONARIO´ double NOT NULL default ´0´,
  ´FORNECEDORES_ID_FORNECEDOR´ double NOT NULL default ´0´,
  ´PEDIDOS_ID_PEDIDO´ double default ´0´,

------

Tabela: NotaFiscalxProdutos

  ´ID_NOTAFISCALxPRODUTO´ double NOT NULL auto_increment,
  ´NOTAFISCAL_ID_NOTAFISCAL´ double NOT NULL default ´0´,
  ´PRODUTOS_ID_PRODUTO´ double NOT NULL default ´0´,
  ´DESCONTO´ float(8,2) NOT NULL default ´0.00´,

------

Tabela: Pedidos

  ´ID_PEDIDO´ double NOT NULL auto_increment,
  ´FORNECEDORES_ID_FORNECEDOR´ double NOT NULL default ´0´,
  ´DTCADASTRO´ date NOT NULL default ´0000-00-00´,



Coloquei somente os campos envolvidos na SQL para facilitar, pois tem tabelas delas que possuem inumeros campos que não sao utilizados nessa consulta ok!

Vlw


Responder

12/12/2006

Emerson Nascimento

perguntas:
os valores de dataInicial1 e dataInicial2 são diferentes?
os valores de dataFinal1 e dataFinal2 são diferentes?
os valores de idFornecedor1 e idFornecedor2 são diferentes?


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar