Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho essa consulta que fiz em php e mysqli onde ela soma a quantidade de itens vendidos no período informado e soma a quantidade de itens comprado.
Essa soma está fazendo certinho só que duplica o item na tela (conforme imagem anexa).
Estou quebrando a cabeça faz uns 4 meses e já tentei de tudo que conheço e também o que achei na net mas não consigo unificar as informações do produto na mesma linha.
O erro está na consulta ou na montagem do relatório na tela?
Se alguém conseguir me ajudar agradeço muito.
Minha consulta está assim:
SELECT DISTINCT TMP.*
FROM (
SELECT DISTINCT d.cat_id AS prod
, p.id
, p.nome AS id_prod
, SUM(d.qtd) AS qtd_prod
, SUM(d.valor_total) AS total_prod
, SUM(0) AS qtd_estoque
FROM lc_controle c
INNER JOIN lc_detalhe d ON d.controle_id = c.id
INNER JOIN lc_cat p ON p.id = d.cat_id
WHERE d.tipo = '0'
AND c.dtConcat BETWEEN '$dtinicial' AND '$dtfinal'
AND c.exportado = 'Sim'
GROUP BY d.cat_id
UNION
SELECT DISTINCT d.cat_id AS prod
, p.id
, p.nome AS id_prod
, SUM(0) AS qtd_prod
, SUM(0) AS total_prod
, SUM(d.qtd) AS qtd_estoque
FROM lc_controle c
INNER JOIN lc_detalhe d ON d.controle_id = c.id
INNER JOIN lc_cat p ON p.id = d.cat_id
WHERE d.tipo = '1'
AND c.dtConcat < '$dtfinal'
AND c.exportado = 'Sim'
GROUP BY d.cat_id
) TMP
ORDER BY TMP.qtd_prod DESC
E a montagem na tela está assim:
<table width="100%" border="1" cellpadding="1" cellspacing="0" class="display" id="example" align="center">
<thead>
<tr class="fonte_titulos">
<th bgcolor="#77baea">Produto</th>
<th bgcolor="#77baea">Quantidade Vendida</th>
<th bgcolor="#77baea">Quantidade Estoque</th>
<th bgcolor="#77baea">Valor Total</th>
</thead>
<tbody>
<?php
while ($dados = mysqli_fetch_array($sel))
{ $id_prod = $dados["id_prod"];
$qtd_prod = $dados ["qtd_prod"];
$qtd_estoque = $dados ["qtd_estoque"];
$total_prod = number_format($dados['total_prod'], 2, ',', '.');
echo "<tr bgcolor =\"$fundo\" class=\"fonte_desc\"><td align=\"center\" width=\"590\">
$id_prod</td><td align='center'>$qtd_prod"."</td><td align='center'>$qtd_estoque"."</td><td align='center'>R$ $total_prod
";
$c++; }
?>
</table>

>
1 hora atrás, ygor.anjos disse:
na verdade ele não esta duplicando o item, para o seu sistema o item filtro interno 127V é diferente do item 220V
Pode ver que tem 2 vezes 110V e duas vezes 220V....
Desculpa, só vi os primeiros itens, o problema ta na sua query, tem dois SELECT DISTINCT d.cat_id
ao invés de usar o UNION tenta fazer com um SELECT sósem o union ele da erro de sintaxe:
#1064 - Você tem um erro de sintaxe no seu SQL próximo a 'SELECT DISTINCT d.cat_id AS prod , p.id ' na linha 17
na verdade ele não esta duplicando o item, para o seu sistema o item filtro interno 127V é diferente do item 220V