MySQL - 避免重复结果行(使用SUM)

时间:2015-07-20 09:39:40

标签: mysql mysqli

我的查询有问题:

SELECT intracee, descr_intra, SUM(quanti) AS quan, SUM(pesotot) AS pesot, SUM(importo) AS impo FROM ".$gaDB."001intramov
                    WHERE datmov BETWEEN '2015-01-01' AND '2015-07-20' GROUP BY intracee

目标是,选择(带有表格)两个日期之间的每一行,并用“内部”代码编号对总和值进行分组,然后用tcpdf打印报告。 它实际上运行良好,问题是一次又一次地重复结果行。

这是DB表的截图:

enter image description here

这是结果之一:

enter image description here

我只需要避免结果行的无限重复。 在这种情况下,结果应该只是前两行。

我尝试了LIMIT以及子查询,但结果完全一样! 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

我忘了删除我发布的查询所在的查询。

Ispirer SQLWays Migrations帮助我询问我是否有任何加入,然后我看到了错误。

$cod = gaz_dbi_dyn_query("*", $gaDB."intracee","");
while ($c = gaz_dbi_fetch_array($cod)) {            

$dati = gaz_dbi_query("SELECT intracee, descr_intra, SUM(quanti) AS quan, SUM(pesotot) AS pesot, SUM(importo) AS impo FROM ".$gaDB."001intramov
                    WHERE datmov BETWEEN ".$date_ini." AND ".$date_fin." GROUP BY intracee,descr_intra");
while ($r = gaz_dbi_fetch_array($dati)) {
  $pdf->Cell(70,6,$r['intracee'].' - '.$r['descr_intra'],1);
  $pdf->Cell(40,6,$r['quan'],1,0,'C');
  $pdf->Cell(40,6,gaz_format_number($r['pesot'],2),1,0,'C');
  $pdf->Cell(40,6,gaz_format_number($r['impo'],2),1,0,'C');
  $pdf->Ln();
}

}

感谢您帮助我,对不起浪费您的时间来做一些简单的事情。 工作时间太长,而且很难找到一些细节!