Produtos não movimentos naquele periodo ?

Delphi

28/02/2004

Pessoal tenho então uma tabela com todos os meu produtos
cadastrados, e tenho uma outra que registra todas as vendas.
Como posso fazer para verificar todos os produtos não movimentados
em um periodo ?.
Eu uso interbase.
Obrigado a tds !!


Essistemas

Essistemas

Curtidas 0

Respostas

Tnaires

Tnaires

28/02/2004

Bom, para responder sua dúvida, assumirei 3 coisas:

1- vc armazena na sua tabela d vendas o código do produto (dã, claro...)
2- vc grava na tabela d vendas a data da venda (dã)

Então, um Query com o seguinte SQL resolveria tudo:
SELECT
  TBPRODUTOS.*, TBVENDAS.*
FROM
  TBPRODUTOS, TBVENDAS
WHERE
  TBVENDAS.DATAVENDA BETWEEN :DATA_1 AND :DATA_2


Na hora d verificar, passe como parâmetros as datas q vc deseja especificar.
Espero ter ajudado


GOSTEI 0
Tnaires

Tnaires

28/02/2004

Ueeeepaaaaaaaa
Acrescente ao seu SQL a seguinte linha:
AND TBVENDAS.CODPRODUTO = TBPRODUTOS.CODPRODUTO



GOSTEI 0
Tnaires

Tnaires

28/02/2004

Q droga cara, sou mto desligado...
Acrescente um operador [b:4b2de560ff]NOT[/b:4b2de560ff] antes do BETWEEN...
E a terceira coisa q eu queria assumir era: movimento significa data d venda do produto (dã)
Acho q agora tá tudo certo... Dê um F9 nas 3 mensagens...


GOSTEI 0
Essistemas

Essistemas

28/02/2004

Meu amigo valeu pela dica montei conforme abaixo + acho que estou
fazendo algo errado ainda !!.
Da o seguinte erro !

Query1: Field ´Data_1´ is of unknow type.

With Query1,Sql do
begin
Clear;
Add(´SELECT PRODUTOS.*,VENDAS.*´);
Add(´FROM PRODUTOS,VENDAS´) ;
Add(´WHERE´);
Add(´VENDAS.DATA NOT BETWEEN :DATA_1 AND :DATA_2´);
Add(´AND VENDAS.CODIGO = PRODUTOS.CODIGO´);
Active:=True ;
end;
end;


GOSTEI 0
Tnaires

Tnaires

28/02/2004

É pq vc ainda precisa passar os parâmetros.
Ficaria assim:
with Query1.Sql do
begin
  Clear;
  Add(´SELECT PRODUTOS.*,VENDAS.*´);
  Add(´FROM PRODUTOS,VENDAS´) ;
  Add(´WHERE´);
  Add(´VENDAS.DATA NOT BETWEEN :DATA_1 AND :DATA_2´);
  Add(´AND VENDAS.CODIGO = PRODUTOS.CODIGO´);
  Query1.ParamByName(´DATA_1´).AsDateTime := StrToDate(edData01.Text);
  Query1.ParamByName(´DATA_2´).AsDateTime := StrToDate(edData02.Text);
  Query1.Open;
end;

Assumindo q os edits edData01 e edData02 armazenem as respectivas datas.
Abraços


GOSTEI 0
Essistemas

Essistemas

28/02/2004

Desta vez deu certo, + vc acredita que ainda não deu
o resultado esperado !.
A Sql seleciona no historico de vendas todos os produto não movimentados e não no cadastro de produtos como o esperado e ela mostra todos os itens acho que teria que incluir uma linha para agrupar
os valores, + esta quase-lá hein!
Eu vou tentando por aqui, se vc tiver + alguma dica !!.
Deus lhe pague !!


GOSTEI 0
Tnaires

Tnaires

28/02/2004

A Sql seleciona no historico de vendas todos os produto não movimentados e não no cadastro de produtos como o esperado e ela mostra todos os itens

Não entendi...


GOSTEI 0
POSTAR