Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um problema evidenciado em outro tópico que tinha um texto que não atendia ao propósito dele:
Tenho a seguinte Query:
/* Esta é a query SELECT */
$Query_Select = "SELECT
pdt.id_departamento, pdt.id_departamento_sub, pdt.nome,
dpt.nome AS nome_departamento,
sdpt.nome AS nome_subdepartamento
FROM Produtos pdt , Departamentos dpt , Departamentos_Sub sdpt
WHERE pdt.id IN ( 1 , 2, 3, 4, 5 ) AND dpt.id = pdt.id_departamento AND sdpt.id = pdt.id_departamento_sub
LIMIT 0,5";
Nela busco todos os produtos selecionados, sem erro.
Agora preciso que nesta mesma query seja possível consultar 2 tabelas (Estoque e Vendas), subtraindo ambas para ter o número em estoque de cada produto.
Consegui pegar ambos os dados da seguinte forma:
/* Esta é a query SELECT */
$Query_Select = "SELECT
pdt.id_departamento, pdt.id_departamento_sub, pdt.nome,
dpt.nome AS nome_departamento,
sdpt.nome AS nome_subdepartamento,
(SELECT COALESCE(SUM(quantidade),0) FROM Produtos_Estoque estq WHERE estq.id_produto = pdt.id GROUP BY estq.id_produto) AS total_estoque,
(SELECT COALESCE(SUM(qtd),0) FROM Vendas_Produtos vendas WHERE vendas.id_produto = pdt.id GROUP BY vendas.id_produto) AS total_vendas
FROM Produtos pdt , Departamentos dpt , Departamentos_Sub sdpt
WHERE pdt.id IN ( 1 , 2, 3, 4, 5 ) AND dpt.id = pdt.id_departamento AND sdpt.id = pdt.id_departamento_sub
LIMIT 0,5";
Desta forma ao listar os registros eu tenho o ESTOQUE e as VENDAS, mas o objetivo não é este.
Preciso listar os produtos de forma que os que não estiverem em estoque fiquem no final da listagem.
Tentei utilizar o total_estoque e o total_vendas no ORDER BY, tentei dar JOIN, INNER JOIN com estes sub-selects que calculam os totais mas não consegui de jeito nenhum.
Agradeço qualquer ajuda.
Carregando comentários...