【发布时间】:2016-02-03 12:46:00
【问题描述】:
我正在尝试根据卖家姓名对销售数据进行分组。该名称在另一个表中可用。我的表格如下所示:
InvoiceRow:
+-----------+----------+-----+----------+
| InvoiceNr | Title | Row | Amount |
+-----------+----------+-----+----------+
| 1 | Chair | 1 | 2000.00 |
| 2 | Sofa | 1 | 1500.00 |
| 2 | Cushion | 2 | 2000.00 |
| 3 | Lamp | 1 | 6500.00 |
| 4 | Table | 1 | -500.00 |
+-----------+----------+-----+----------+
InvoiceHead:
+-----------+----------+------------+
| InvoiceNr | Seller | Date |
+-----------+----------+------------+
| 1 | Adam | 2016-01-01 |
| 2 | Lisa | 2016-01-04 |
| 3 | Adam | 2016-01-08 |
| 4 | Carl | 2016-01-17 |
+-----------+----------+------------+
我目前使用的查询如下所示:
SELECT SUM(Amount)
FROM InvoiceRow
WHERE InvoiceNr IN (
SELECT InvoiceNr
FROM InvoiceHead
WHERE Date >= '2016-01-01' AND Date < '2016-02-01'
)
这有效,并将在 1 月份汇总所有发票(总销售额)的所有行的值。
我要做的是按每个卖家姓名分组的销售摘要。像这样的:
+----------+------------+
| Seller | Amount |
+----------+------------+
| Adam | 8500.00 |
| Lisa | 3500.00 |
| Carl | -500.00 |
+----------+------------+
在那之后甚至可能按月分组(但这不是这个问题的一部分,如果我解决了这个问题,我希望能够弄清楚)。
我尝试了各种联接,但最终得到了很多重复项,而且我不确定如何同时求和和分组。有谁知道怎么做?
【问题讨论】:
-
这是一个非常基本的
join和group by查询。 -
您应该尝试在
InvoiceNr字段上加入 - 另外,在您的 WHERE InvoiceNr 中,也选择卖方字段,然后Group By
标签: sql