如何在mysql中找到正确的值

时间:2017-07-02 11:34:39

标签: mysql sql

我有一个关于从我的方案中找到正确值的问题。 我有两张这样的表:

班次表

shift_id | shift_user | gate
-------- | ---------- | ------
   1     |     1001   |   1
   1     |     1001   |   2
   1     |     1001   |   3
   2     |     1002   |   1
   2     |     1002   |   2
   2     |     1002   |   3
   3     |     1003   |   1
   3     |     1003   |   3

交易表

id   |  shift_id  |  sale   |   gate
-----|------------|---------|----------
  1  |     1      |  2000   |     1
  2  |     1      |  30000  |     2
  3  |     1      |  40000  |     3
  4  |     2      |  300    |     1
  5  |     2      |  4000   |     2
  6  |     2      |  3200   |     3
  7  |     3      |  5500   |     1
  8  |     3      |  100000 |     3

如何计算每个shift_id的销售总额?

请提供一个查询的好方法。

非常感谢。

:)

修改

从答案的评论部分可以看出,我们需要获得特定班次的销售总额。

4 个答案:

答案 0 :(得分:2)

这是一个简单的分组查询。试试这个:

SELECT shift_id, SUM(sale)
FROM transactions
GROUP BY shift_id;

这是fiddle

答案 1 :(得分:2)

使用如下查询:

Select s.shift_id, sum(sale) from shift s INNER JOIN transaction 
ON s.shift_id=t.shift_id group by s.shift_id

答案 2 :(得分:0)

您需要简单的分组

select shift_id, sum(sale)
from transactions
group by shift_id

如果您需要为特定组获取此结果,请按照这样做

select shift_id, sum(sale)
from transactions
group by shift_id
having shift_id = 1

答案 3 :(得分:0)

我为我的问题找到了解决方案。 我使用了以下查询:

select sum(sale) from transaction inner join shift on shift.shift_id=transaction.shift_id and shift.gate=transaction.gate;

返回正确的结果。 感谢您的回复,亲爱的朋友们。