Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) max(id) no fim da consulta


Carlos Rocha

Pergunta

Ola pessoal.

Tenho 3 tabelas

1) Fornecedores
2) Produtos
3) Produtos_Lista
Bom, nessa Produtos_Lista, eu gravo os dados dos produtos que vão preencher minha lista de produtos que vou por a disposição de clientes. O problema é que eu não tenho um campo fornecedor na tabela Produtos_Lista e todo produto tem um fornecedor. Dai, eu queria saber, qual os nomes dos fornecedores que tem seus produtos registrados na tabela de de Produtos_lisa. Outra por menor é que só me interessa a ultima lista. Dai fiz a seguinte consulta que deu certo:
select
 f.id as Fornecedor_id,
 f.nome as Fornecedor_nome,
 f.razaosocial as Fornecedor_razao 
from
 fornecedores f inner join (produtos p inner join produtos_lista pl on pl.id_produto = p.id) on p.fornecedor=f.id
where 
 pl.id_lista=3
Como só preciso da última lista daí fiz assim:
select
 f.id as Fornecedor_id,
 f.nome as Fornecedor_nome,
 f.razaosocial as Fornecedor_razao 
from
 fornecedores f inner join (produtos p inner join produtos_lista pl on pl.id_produto = p.id) on p.fornecedor=f.id
where 
 pl.id_lista=max(pl.lista_id)

Só que aí, quando troquei o 7 por max(pl.lista_id), da erro de uso indevido da group função.

Como posso contornar esse problema?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Tentei assim tambem, da certo, mas não consigo fazer apenas com a última lista.

select
 f.id as Fornecedor_id,
 f.nome as Fornecedor_nome,
 f.razaosocial as Fornecedor_razao 
from
/*fornecedores f inner join (produtos p inner join produtos_lista pl on pl.id_produto = p.id) on p.fornecedor=f.id */
produtos_lista pl  
                 inner join (
                             produtos p inner join 
                                                  fornecedores f on p.fornecedor=f.id
                                                                                     ) 
                                                                                       on pl.id_produto = p.id
where 
 pl.id_lista=3 (Aqui eu tenho que pegar o id da última lista

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui!

Ficou assim:

$sql_fornecedor= "         
              select
               f.id as Fornecedor_id,
               f.nome as Fornecedor_nome,
               f.razaosocial as Fornecedor_razao,
               pl.id_lista as Lista
              from
               produtos_lista pl inner join (produtos p inner join fornecedores f  on p.fornecedor=f.id) on pl.id_produto = p.id
              where 
               pl.id_lista=(select max(pl.id_lista) from produtos_lista pl)
              GROUP by f.id            ";

Grato a todos!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...