查询以获取与其发票号码具有相同日期的所有行?

时间:2016-01-07 12:11:35

标签: php mysql sql

我有一张表,我必须从中获取invoiceNo,所有权重的总和,计算条形码的数量以及特定日期中名为selected_items的表中sum_total的最后一个值。

    SELECT invoiceNo, SUM(weight), COUNT(barcode), sum_total
FROM selected_items
WHERE date LIKE '07-Jan-2016' GROUP BY invoiceNo ORDER BY id DESC;

这就是我的数据库的样子。 enter image description here

这是我在php我的管理员运行此查询时输出的内容。 enter image description here

我想要做的是在特定日期获取该特定invoiceNo的invoiceNo,权重总和,条形码数和sum_total中的最后一个值。 在我当前的查询中,我获得了6个项目的权重总和,条形码计数为6,sum_total中的第一个值。我甚至尝试过这个查询,但它没有给出预期的答案。

SELECT invoiceNo, SUM(weight), COUNT(barcode), sum_total
FROM selected_items
WHERE invoiceNo IN ('IN1001','ES102');

这是我期望实现的目标。enter image description here

2 个答案:

答案 0 :(得分:4)

要实现您的需求,您应该按invoiceNo对结果进行分组,因此您的查询如下所示:

SELECT invoiceNo, SUM(weight), COUNT(barcode), sum_total
FROM selected_items
WHERE date LIKE '07-Jan-2016' GROUP BY invoiceNo;

答案 1 :(得分:1)

这可能有助于您尝试一下。

SELECT invoiceNo, SUM( weight ) , COUNT( barcode ) , sum_total
FROM (SELECT * FROM  `selected_items` 
WHERE DATE LIKE  '07-Jan-2016'
ORDER BY id DESC
)a
GROUP BY invoiceNo;