Dificuldade com comando sql
Boa noite pessoal, desenvolvo um sistema para um hotel fazenda e Utilizando Delphi 7, Rave e Firebird. Porem estou tendo uma dificuldade em elaborar um comando sql, preciso fazer um relatorio de custo onde me apresente a descricao do produto, quantidade vendida, preço de custo, preço de venda e a margem de lucro que foi gerada
1º Cada cliente recebe um botton ´especie de moeda eletronica´, com seus dados e um valor ´R$ X,XX´ de credito para gastar.
2º É controlado o estoque de varios locais como:
restaurante, cozinha do hotel, frigobar, sorveteria, lanchonete... ao todo são 13 locais diferentes
Cada um destes locais tem um micro onde é feita a saida do produto como a cozinha, frigobar, estoque geral ´Alem do estoque de cada local tem um Estoque geral, que é onde ficar armazenado os produtos comprados e q ainda nao foram destribuidos para os respectivos locais´. E locais que é feita a venda como restaurante, sorveteria... Para controlar isto tudo foi criado um tabela chamada estoque onde cada local recebe um codigo, e outra tabela para cada local onde é armazenado produto e quantidade em estoque de cada local.
3º Qdo é feita uma venda é inserido na tabela vendas: cod_venda data e o codclient e na tabela intens_venda é inserido: coditens, codvenda, codprod, quantidade, valorunit e cod_estoque e em seguida dado baixa no estoque e debitado de seu botton a quantia gastada.
4º Cada vez que um produto é dado entrada no estoque geral o preço de custo dele pode variar, pois vc pode pegar uma promoção ou um almento.
Para quebrar o galho estava fazendo esta consulta em um IBClientDataSet, porem o preço de custo que esta pegando nesta consulta é o preço de venda multiplicado pela quantia de produtos vendidos. Oq não é correto! Qdo deveria pegar o preço de custo.
E tbm aparece o mesmo produto varias vezes de acordo como ele foi registrado na tabela intens_venda, oq não é correto tbm.
SELECT I.CODPROD, P.DESCRICAO, V.DATA, I.QUANTIDADE, I.CODVENDA, P.VALORUNIT, (P.VALORUNIT * I.QUANTIDADE) SOMA
FROM PRODUTOS P, ITENS_VENDA I, VENDAS V
WHERE (V.DATA >= :DATINI)
AND (V.DATA = :DATINI)
AND (DATA <=:DATFIM)
AND (I.CODPROD = P.CODPROD)
AND (I.COD_ESTOQUE = :COD )
AND (I.CODVENDA = V.CODVENDA)
group BY i.codprod, p.descricao, DATA
ORDER BY DATA, P.DESCRICAO
Oq preciso é o seguinte:
Qdo pedir este relatorio ele selecione o preço de custo do determinado produto vendido ´onde vai ter varios preço de custo cadastrado para cada produto´ nao sei como escolher um deles, ´ se faço a media, o maior valor, o menor, o ultimo cadastrado???´. e depois acrescentar junto a este codigo acima...
Não sei se consegui expressar oq necessito, se alguem puder me ajudar agradeço...
Obrigado
1º Cada cliente recebe um botton ´especie de moeda eletronica´, com seus dados e um valor ´R$ X,XX´ de credito para gastar.
2º É controlado o estoque de varios locais como:
restaurante, cozinha do hotel, frigobar, sorveteria, lanchonete... ao todo são 13 locais diferentes
Cada um destes locais tem um micro onde é feita a saida do produto como a cozinha, frigobar, estoque geral ´Alem do estoque de cada local tem um Estoque geral, que é onde ficar armazenado os produtos comprados e q ainda nao foram destribuidos para os respectivos locais´. E locais que é feita a venda como restaurante, sorveteria... Para controlar isto tudo foi criado um tabela chamada estoque onde cada local recebe um codigo, e outra tabela para cada local onde é armazenado produto e quantidade em estoque de cada local.
3º Qdo é feita uma venda é inserido na tabela vendas: cod_venda data e o codclient e na tabela intens_venda é inserido: coditens, codvenda, codprod, quantidade, valorunit e cod_estoque e em seguida dado baixa no estoque e debitado de seu botton a quantia gastada.
4º Cada vez que um produto é dado entrada no estoque geral o preço de custo dele pode variar, pois vc pode pegar uma promoção ou um almento.
Para quebrar o galho estava fazendo esta consulta em um IBClientDataSet, porem o preço de custo que esta pegando nesta consulta é o preço de venda multiplicado pela quantia de produtos vendidos. Oq não é correto! Qdo deveria pegar o preço de custo.
E tbm aparece o mesmo produto varias vezes de acordo como ele foi registrado na tabela intens_venda, oq não é correto tbm.
SELECT I.CODPROD, P.DESCRICAO, V.DATA, I.QUANTIDADE, I.CODVENDA, P.VALORUNIT, (P.VALORUNIT * I.QUANTIDADE) SOMA
FROM PRODUTOS P, ITENS_VENDA I, VENDAS V
WHERE (V.DATA >= :DATINI)
AND (V.DATA = :DATINI)
AND (DATA <=:DATFIM)
AND (I.CODPROD = P.CODPROD)
AND (I.COD_ESTOQUE = :COD )
AND (I.CODVENDA = V.CODVENDA)
group BY i.codprod, p.descricao, DATA
ORDER BY DATA, P.DESCRICAO
Oq preciso é o seguinte:
Qdo pedir este relatorio ele selecione o preço de custo do determinado produto vendido ´onde vai ter varios preço de custo cadastrado para cada produto´ nao sei como escolher um deles, ´ se faço a media, o maior valor, o menor, o ultimo cadastrado???´. e depois acrescentar junto a este codigo acima...
Não sei se consegui expressar oq necessito, se alguem puder me ajudar agradeço...
Obrigado
Dberlese
Curtidas 0
Respostas
Vinicius2k
04/01/2005
[b:2734eb2d1a][color=red:2734eb2d1a]Atenção :[/color:2734eb2d1a][/b:2734eb2d1a]
[b:2734eb2d1a]Tópico em duplicidade e será removido ou bloqueado pela moderação/administração.[/b:2734eb2d1a]
dberlese,
Sei que não foi intencional, mas peço que leia atentamente as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Colegas,
Por favor, postem respostas no tópico : http://delphiforum.icft.com.br/forum/viewtopic.php?t=56918
[b:2734eb2d1a]Tópico em duplicidade e será removido ou bloqueado pela moderação/administração.[/b:2734eb2d1a]
dberlese,
Sei que não foi intencional, mas peço que leia atentamente as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Colegas,
Por favor, postem respostas no tópico : http://delphiforum.icft.com.br/forum/viewtopic.php?t=56918
GOSTEI 0