我在MySQL中尝试了CREATE VIEW
,但我得不到我需要的东西。
我有两张桌子,servicios
:
+-------------+------------+----------+
| id_servicos | fecha | cantidad |
+-------------+------------+----------+
| 1 | 2016-05-02 | 2 |
| 2 | 2016-05-03 | 3 |
| 3 | 2016-05-03 | 5 |
+-------------+------------+----------+
和actuacion
:
+--------------+--------------+--------+
| id_actuacion | clv_servicio | grupo |
+--------------+--------------+--------+
| 1 | 1 | RED |
| 2 | 1 | RED |
| 3 | 2 | BLUE |
| 4 | 4 | ORANGE |
| 5 | 3 | RED |
+--------------+--------------+--------+
我希望输出看起来像这样:
RED, 7
BLUE, 2
ORANGE, 4
所以我的查询看起来像这样
SELECT actuacion.grupo,
SUM(servicios.cantidad) AS total
FROM (actuacion
JOIN servicios ON actuacion.clv_servicio = servicios.id_servicos)
GROUP BY actuacion.grupo
,结果是
RED, 9
BLUE, 2
ORANGE, 4
我认为你必须在日期(fecha)之前匹配然后是数量之和(cantidad),所以不要加两倍RED组 我需要RED的结果是7
非常感谢任何帮助。
答案 0 :(得分:1)
您可以在用作派生表的查询中找到actuacion
表中的唯一组合,并与之结合。
这可以为您提供所需的结果:
Select t.grupo,
Sum(servicios.cantidad) As total
From (select distinct clv_servicio, grupo from actuacion) as t
Join servicios On t.clv_servicio = servicios.id_servicos
Group By t.grupo
答案 1 :(得分:0)
您可以使用子查询并在以下内容中使用GROUP BY
:
SELECT grupo,
SUM(s.cantidad) total
FROM (SELECT clv_servicio,
grupo
FROM actuacion a
GROUP BY clv_servicio, grupo
) x
JOIN servicios s ON x.clv_servicio = s.id_servicos
GROUP BY grupo