Fórum Consulta de vendas de um funcionario #131005
24/03/2010
0
var
sql:string; begin
sql:='select saidas.vendedor, saidas.codigo, saidas.quantidade, vendas.valor, vendas.data from SAIDAS, VENDAS'+ ' where vendas.data between:pinicial and :pfinal';
if editfun.Text <> '' then sql:= sql + ' and funcionario='+QuotedStr(editfun.Text); dm.cdsfunc.Close;
dm.cdsfunc.CommandText:=sql; dm.cdsfunc.Params[0].AsDate:=strtodate(funInicial.Text);
dm.cdsfunc.Params[1].AsDate:=strtodate(funFinal.text);
dm.cdsfunc.Open;
end; esta consulta está travando meu programa, até q eu acabo fechando. os campos que preciso das tabelas são tabela vendas data valor tabela saidas codigo do produto quantidade vendedor alguem poderia me ajudar? teriao uma sugestao de consulta?
Thiago Silva
Curtir tópico
+ 0Posts
24/03/2010
Thiago Santana
E informe os campos desejados na consulta... AbraçoO
Gostei + 0
24/03/2010
Thiago Silva
E informe os campos desejados na consulta... AbraçoO
codigo fk(codigo da tabela produtos)
quantidade
vendedor pk(codigo da tabela funcionário) Vendas codigo Pk valor
data
quero selecionar codigo, quantidade, vendedor, valor, data quando o funcionário tal for informado
Gostei + 0
24/03/2010
Thiago Santana
Para que um campo seja chave estrangeira ele deverá conter o mesmo nome da chave primária da tabela que será herdada!
Exemplo Tabela Vendas:
CODVENDA (PK)
VALOR_VENDA
DATA_VENDA
CODPRODUTO(FK) TABELA SAIDA
CODVENDA(FK)
QTD_SAIDA
CODVENDEDOR(FK) TABELA VENDEDOR
CODVENDEDOR(PK)
NOME_VENDEDOR
ENDERECO_VENDEDOR TABELA PRODUTOS
CODPRODUTO (PK)
NOME_PRODUTO
VALOR_PRODUTO Aí o seu select para gerar todos os registros será esse aqui abaixo:
select
saida.codvenda,
saida.qtd_saida,
vendas.data_venda,
produtos.nome_produto,
produtos.valor_produto,
vendedor.nome_vendendor
from saida
inner join vendas on (saida.codvenda = vendas.codvenda)
inner join produtos on (vendas.codproduto = produtos.codproduto)
inner join funcionario on (saida.codvendedor = vendedor.codvendedor) Assim será bem mais fácil de vc fazer oq deseja!
Espero ter ajudado
Gostei + 0
24/03/2010
Thiago Santana
procedure Tfuncionario.Button1Click(Sender: TObject);
var
sql:string;
begin
sql:='select saida.codvenda, saida.qtd_saida, vendas.data_venda, produtos.nome_produto, produtos.valor_produto, vendedor.nome_vendedor '+ ' where vendas.data_vendas between:pinicial and :pfinal';
if editfun.Text <> '' then
sql:= sql + ' and vendedor.nome_vendedor ='+QuotedStr(editfun.Text);
dm.cdsfunc.Close;
dm.cdsfunc.CommandText:=sql;
dm.cdsfunc.Params[0].AsDate:=strtodate(funInicial.Text);
dm.cdsfunc.Params[1].AsDate:=strtodate(funFinal.text);
dm.cdsfunc.Open;
end;
Confere o SQL deste código aqui pq não testei com o SQL certo que te passei no poste passado! Espero ter ajudado!
Qualquer dúvida posta aí...
AbraçoO
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)