ajuda com select

Delphi

06/02/2008

olá Amigos, estou com uma duvida e naum consegui resolver ainda, tenho 5 tabelas :

[Cliente]
id_cliente *
nome_cliente

[Venda]
id_venda *
id_cliente

[ItensVenda]
idvenda_itensvenda *
produto *
qtde *
...

[Consignacao]
id_consignacao *
id_cliente

[ItensConsignacao]
idconsignacao_itensconsignacao *
produto *
qtde *
...

Bom, preciso fazer um select onde ele me retorne os produtos que um determinado cliente comprou ou pegou em consignação. Espero q vcs consiga entender. Agradeço desde já.


Sownray

Sownray

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

06/02/2008

Colega,

Qual é a chave estrangeira nas tabelas de itens que as associam as tabelas mestre?


GOSTEI 0
Andepunk

Andepunk

06/02/2008

primeiro voce tem que arrumar as tabelas para poder fazer o relacionamento

pode ser assim:

[Cliente]
CLI_CODIGO
CLI_NOME
...

[Produtos]
PRO_CODIGO
PRO_DESCRICAO
PRO_ATACADO
PRO_VAREJO
PRO_ESTOQUE
...

[Venda]
VEN_CODIGO
...


[ItensVenda]
COD_VENDA
ITE_CODIGO
COD_CLIENTE
COD_PRODUTO
ITE_QTDE
ITE_PRECO
....

[Consignacao]
CON_CODIGO
...

[ItensConsignacao]
COD_CONSIGINACAO
ITE_CONSIGINACAO
COD_CLIENTE
COD_PRODUTO
ITE_QTDE
ITE_PRECO
....

DAI FAZ ASSIM

SELECT CLI_NOME, PRO_DESCRICAO, SUM(ITE_QTDE) AS QTDE, ITE_PRECO, SUM(ITE_QTDE)*ITE_PRECO AS TOTAL FROM CLIENTES, VENDAS, ITENSVENDAS, PRODUTOS
WHERE CLI_CODIGO=COD_CLIENTE AND COD_PRODUTO=PRO_CODIGO
VEN_CODIGO=COD_VENDA;

ASSIM VOCE TEM OS VALORES DAS VENDAS.


SELECT CLI_NOME, PRO_DESCRICAO, SUM(ITE_QTDE) AS QTDE, ITE_PRECO, SUM(ITE_QTDE)*ITE_PRECO AS TOTAL FROM CLIENTES, CONSIGNACAO, ITENSCONSIGNACAO, PRODUTOS
WHERE CLI_CODIGO=COD_CLIENTE AND COD_PRODUTO=PRO_CODIGO
CON_CODIGO=COD_CONSIGNACAO;

ASSIM VOCE TEM OS VALORES DAS CONSIGNACAO.

DEPOIS SO VER QUAL SQL RETORNA ALGUM VALOR E MOSTRAR.


GOSTEI 0
Andepunk

Andepunk

06/02/2008

primeiro voce tem que arrumar as tabelas para poder fazer o relacionamento pode ser assim: [Cliente] CLI_CODIGO CLI_NOME ... [Produtos] PRO_CODIGO PRO_DESCRICAO PRO_ATACADO PRO_VAREJO PRO_ESTOQUE ... [Venda] VEN_CODIGO ... [ItensVenda] COD_VENDA ITE_CODIGO COD_CLIENTE COD_PRODUTO ITE_QTDE ITE_PRECO .... [Consignacao] CON_CODIGO ... [ItensConsignacao] COD_CONSIGINACAO ITE_CONSIGINACAO COD_CLIENTE COD_PRODUTO ITE_QTDE ITE_PRECO .... DAI FAZ ASSIM SELECT CLI_NOME, PRO_DESCRICAO, SUM(ITE_QTDE) AS QTDE, ITE_PRECO, SUM(ITE_QTDE)*ITE_PRECO AS TOTAL FROM CLIENTES, VENDAS, ITENSVENDAS, PRODUTOS WHERE CLI_CODIGO=COD_CLIENTE AND COD_PRODUTO=PRO_CODIGO AND VEN_CODIGO=COD_VENDA AND COD_CLIENTE=:COD_CLIENTE; ASSIM VOCE TEM OS VALORES DAS VENDAS. SELECT CLI_NOME, PRO_DESCRICAO, SUM(ITE_QTDE) AS QTDE, ITE_PRECO, SUM(ITE_QTDE)*ITE_PRECO AS TOTAL FROM CLIENTES, CONSIGNACAO, ITENSCONSIGNACAO, PRODUTOS WHERE CLI_CODIGO=COD_CLIENTE AND COD_PRODUTO=PRO_CODIGO AND CON_CODIGO=COD_CONSIGNACAO AND COD_CLIENTE=:COD_CLIENTE;; ASSIM VOCE TEM OS VALORES DAS CONSIGNACAO. DEPOIS SO VER QUAL SQL RETORNA ALGUM VALOR E MOSTRAR.


AI TEM QUE VER PELO QUE VOCE QR MOSTRAR PELO CLIENTE PRODUTO VENDA, CONSIGNACAO E AI VAI QQ DUVIDA PEGUNTA AEW... ALI ESTA PELO COD_CLIENTE SO FALTA PASSAR O PARAMETRO PRO SQL E DEU PRA BOLA


GOSTEI 0
POSTAR