Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wllf

Tabela Venda e tabela Item

Recommended Posts

Estou utilizando um contador querycontador e uma tabela master (Venda) e uma tabela (detalhe) Item com os seguintes campos(n° Venda, Cod._item, N°_item), mas para cada venda eu preciso zerar somente o contador do N°_item, ou seja, venda nova o N°_item começa do 1 mas estou conseguindo.

 

Delphi 7, BD access, componentes ADO.

 

Caso alguém possa me ajudar valeu !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como esta fazendo o SQL do contador? Esta filtrando para somente aquela venda?

 

Marcio

 

No caso do N°_Item não estou filtrando, só uso o SQL pra gerar o contador, ou seja, aquele código 'SELECT MAX(N_ITEM) FROM TBLITENVENA', até aí tudo bem, mas o N°_item tem que zerar para uma nova venda.

Caso você tenha alguma idéia para o SQL, posta aí valeu !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para cada itens da venda você precisa começar do 1, se usar o sql:

SELECT MAX(N_ITEM) FROM TBLITENVENA

Você estará pegando o próximo código sobre todos os itens da tabela.

No caso precisa ainda filtrar para somente daquela venda, fazendo:

SELECT MAX(N_ITEM) FROM TBLITENVENA WHERE COD_VENDA = xyz

Onde que "xyz" é o código da venda que esta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[.

No caso precisa ainda filtrar para somente daquela venda, fazendo:

SELECT MAX(N_ITEM) FROM TBLITENVENA WHERE COD_VENDA = xyz

Onde que "xyz" é o código da venda que esta.

Márcio legal, só tenho uma dúvida COD_VENDA = 'xyz' esse COD_VENDA também é auto - increment, e como para cada venda existe um COD-VENDA, como eu faço para capturar esse valor no select acima, se eu entendi bem é a partir dele que a SQL será ativada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lega Márcio, então após o contador a query selecionar o máximo valor COD_ITEM e adicionar o N_item eu tenho que dar um edit na tabela para inserir o N_Item no mesmo registro corrente. Caso eu esteja errado me corrija.

 

Vou testar Márcio, qualquer problema eu posto de novo.

Valeu Mácio pela força ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Márcio o código seria + ou - assim:

 

'Select Max(N_ITEM) from tblitenvenda where COD_VENDA =' 'COD_VENDA.tblvenda'

 

Minha dúvida é qual COD_VENDA eu vou buscar é o tblvenda que é a master, porque preciso zerar o N_ITEM e mudando o COD_VENDA ele vai zerar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, no caso precisa pegar da tabela master.

Exemplo usando uma query:

 

 

var
    prox: integer;
begin
prox:=0;

query.Close;
query.SQL.Clear;
query.SQL.Add('Select Max(N_ITEM) as Proximo');
query.SQL.Add('from tblitenvenda');
query.SQL.Add('where COD_VENDA = ' + IntToStr(tblvendaCOD_VENDA.Value));
query.Open;
if (not query.IsEmpty) then
    prox:=query.FieldByName('PROXIMO').AsInteger;
query.Close;

Inc(prox);

tblVendaItemN_ITEM.Value:=prox;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Márcio tá dificil, esse linha abaixo:

 

query.SQL.Add('Select Max(N_ITEM) as Proximo');

 

Essa (Próximo) não é uma palavra reservado do sql, é qual tipo de comando.

Não tenho muita experiência ou quase nenhuma em programação e nem SQL, estou começando agora, mas pesquisar e ler isso eu faço.

Em todo agradeço a força que você está dando!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O "Proximo" é um renomeação de SQL, o comando "AS" renomeia um campo...

Se colocar por exemplo:

select nome as NomeCliente from cliente

O SQL irá gerar a coluna como "NomeCliente"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Márcio eu perguntei sobre as palavras mas, eu achei a porque. Sobre o código que você me enviou eu testei e deu certo, gerou um erro, mas acho que sei o porque. Quando eu criei a tabela itenvenda o N_ITEM eu coloquei como chave primária e sendo asim ele não pode ser duplicado.

Acho que se eu retirar a chave não vai mas dar esse erro.

 

Valeu Márcio pela força, qualquer eu aviso !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.