Ir para conteúdo

POWERED BY:

Arquivado

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

villas2

Select dentro de Select ?

Recommended Posts

Boas a todos. Tenho aqui a sintese do que eu preciso fazer:1 - Form para pesquisar por Cli( digita o cod cliente) - vai para pagina que lista.2 - Lista Registros de <tabela_descontos>SELECT * FROM <tabela_descontos> WHERE Cli = '$cli'Este select vai listar os campos:----------------------------------------------------------------------| ID | hierarquia | cod prod | Desconto1 | Desconto2 |----------------------------------------------------------------------3 - Na coluna Desconto2, eu preciso buscar em uma outra tabela (detalhes de pedido) o último desconto concedido que não seja igual a 'acerto' e que seja da mesma hierarquia OU o mesmo codigo de produto (cod pro) o que houverA tabela <detalhes de pedido> contem os seguintes campos (os que interessam)-------------------------------------------------------------------------------Cod Cli | data | Hierarquia | cod prod | Desconto1 | Desconto 2 | -------------------------------------------------------------------------------Esta listagem <tabela_descontos> é impressa a partir de um loop do tipo DO WHILE e presumo que eu precise de um outro select "DENTRO" deste loop.Estou no caminho correto ?Como fazer isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz... select dentro de select não é complicado... mas entender o que realmente você deseja (ou precisa) sim...Então, seria algo do tipo: "preciso saber o menor e o maior desconto obtido pelos clientes, dentre os pedidos desses clientes no período de 01/01/2007 a 30/06/2007, dos códigos de produtos no grupo 01500 a 01599 OU dentre as ??hierarquias?? de ??isso?? até ??aquilo?? E desde que o maior desconto não seja a ??palavra?? "acerto" ? seria por aí? e o que significa essa tal hierarquia?Seria por aí?E poderia colocar alguns dados.... assim: para obter esta consulta, disponho da tabela 'tabela de desconto', com esses dados... e da tabela 'detalhe de pedidos' com tais dados... de forma a obter esse resultado...Ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz... select dentro de select não é complicado... mas entender o que realmente você deseja (ou precisa) sim...Então, seria algo do tipo: "preciso saber o menor e o maior desconto obtido pelos clientes, dentre os pedidos desses clientes no período de 01/01/2007 a 30/06/2007, dos códigos de produtos no grupo 01500 a 01599 OU dentre as ??hierarquias?? de ??isso?? até ??aquilo?? E desde que o maior desconto não seja a ??palavra?? "acerto" ? seria por aí? e o que significa essa tal hierarquia?Seria por aí?E poderia colocar alguns dados.... assim: para obter esta consulta, disponho da tabela 'tabela de desconto', com esses dados... e da tabela 'detalhe de pedidos' com tais dados... de forma a obter esse resultado...Ok?

Opa ... é bem por ai mesmo...Hierarquia é a maneira de relacionar descontos a uma grade de produtos. Exemplo: a hierarquia 01 equivale a um grupo de produtos ... no caso mais ou menos uns 50 itens da tabela de produtos... e assim por diante em umas 100 hierarquias num universo de 1600 itens da tabela de produtos. As hierarquias são uma outra tabela separada e as mesmas eu cadastro por cliente sendo que quando peço pra listar a tabela de hierarquia por cliente, me retorna uma lista com as hierarquias cdastradas por cliente (nem pense em me culpar por isso pois não fui eu que criou hehehe ... )seria assim:Ao listar a tabela de hierarquia por clientes [ Lista Registros de <tabela_descontos> ]Este select vai listar os campos:-----------------------------------------------| ID | hierarquia | cod prod | Desconto1 | -----------------------------------------------Preciso que seja listado um campo adicional neste relatório acima ( | Desconto2 | ) que está em outra tabela de detalhes de pedido ( possui itens de todos os pedidos de todos os clientes) onde os dados de comparação (hierarquia ou cod produto e cliente) coincidam E que não tenham no campo ACERTO, a palavra 'acerto' ... E que seja o ULTIMO desconto concedidoSerá que deu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resumindo as operações de comparaçãotabela_descontos.cli = tabela_detalhesdepedido.clitabela_descontos.hier(ou codpro) = tabela_detalhesdo pedido.hier(ou codpro) <---- *****se tabela_detalhesdepedido.desconto2 != 'acerto'se tabela_detalhesdepedido.desconto2 = ultimo desconto2 concedido***** ---> neste ponto eu defino por variáveis atravez de um IF pois o desconto na tabela de descontos pode ser atribuido por codpro ou hierarquia (o que houver).

Compartilhar este post


Link para o post
Compartilhar em outros sites

villas2 acho melhor você descrever a estrutura atual e o que você deseja fazer senao fica mais complicado entendermos o que você quer fazer do que resolver o problema em si.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[tabela de produtos]

 

codigo produto

descrição

hierarquia

vaor bruto

 

[tabela de descontos]

 

Cliente

hierarquia

produto

desconto(1)

 

[tabela de itens do pedido]

 

Cliente

Cod produto

hierarquia

desconto(1)

desconto(2)

 

-------------------------------------------------------

 

Quero listar a [tabela de descontos] selecionando por cliente onde me apresente uma consulta adicional item a item e me apresente o campo desconto(2) da [tabela de itens do pedido] comparando os campos das mesmas, o ultimo desconto para a hierarquia (ou cod produto) no ponteiro da listagem.

 

Será que deu pra sacar ? Se nao der eu tento denovo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi a estrutura, mas explicacao continua dificil

Quero listar a [tabela de descontos] selecionando por cliente onde me apresente uma consulta adicional item a item e me apresente o campo desconto(2) da [tabela de itens do pedido] comparando os campos das mesmas, o ultimo desconto para a hierarquia (ou cod produto) no ponteiro da listagem.

o que entendi:1) - listar os campos hierarquia, produto, desconto(1) da tabela "descontos"2) - ao mesmo que gerar a listagem, fazer uma consulta na tabela "itens do pedido".3) - a consulta na tabela "itens do pedido" deve ser relacionada à tabela "descontos"4) - o relacionamento deve comparar os campos: hierarquia - hierarquia cliente - cliente produto - produtoNesse caso seria

SELECT descontos.hierarquia AS descontos_hierarquia , descontos.cliente AS descontos_cliente , descontos.produto AS descontos_produto , descontos.desconto AS descontos_desconto itens_pedido.hierarquia AS pedido_hierarquia , itens_pedido.cliente AS pedido_cliente , itens_pedido.produto AS pedido_produto , itens_pedido.desconto AS pedido_descontoFROM descontos, itens_pedidoWHERE descontos.cliente = itens_pedido.clienteANDdescontos.hierarquia = itens_pedido.hierarquia ANDdescontos.produto = itens_pedido.produto

esse trecho ficou muito confuso. descreva-o com sendo objetivo e prático.

onde me apresente uma consulta adicional item a item e me apresente o campo desconto(2) da [tabela de itens do pedido] comparando os campos das mesmas, o ultimo desconto para a hierarquia (ou cod produto) no ponteiro da listagem.

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.