Mysql - SUM列-子查询返回超过1行
我要数一数我们会员的工作时间,他们在帮助我们。该表如下所示:
CREATE TABLE `stunden` (
`std_id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`einsatz_id` int(11) NOT NULL,
`stunden` decimal(5,1) NOT NULL DEFAULT '0.0',
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`std_id`)
) ENGINE=InnoDB;
INSERT INTO stunden VALUES
(1,1,2,1.0,'2018-01-19 00:36:15'),
(2,2,2,1.0,'2018-01-19 00:36:15'),
(3,4,2,1.0,'2018-01-19 00:36:15'),
(4,1,1,2.0,'2018-01-19 00:36:37'),
(5,5,1,2.0,'2018-01-19 00:36:37'),
(6,1,2,2.5,'2018-01-20 12:00:36');
mysql> select * from stunden;
+--------+---------+------------+---------+---------------------+
| std_id | user_id | einsatz_id | stunden | last_update |
+--------+---------+------------+---------+---------------------+
| 1 | 1 | 2 | 1.0 | 2018-01-19 00:36:15 |
| 2 | 2 | 2 | 1.0 | 2018-01-19 00:36:15 |
| 3 | 4 | 2 | 1.0 | 2018-01-19 00:36:15 |
| 4 | 1 | 1 | 2.0 | 2018-01-19 00:36:37 |
| 5 | 5 | 1 | 2.0 | 2018-01-19 00:36:37 |
| 6 | 1 | 2 | 2.5 | 2018-01-20 12:00:36 |
+--------+---------+------------+---------+---------------------+
6 rows in set (0,00 sec)
您可以看到,user_id = 1的成员在einsatz_id=2上可用两次,在einsatz_id = 1上可用一次。我需要的是每个einsatz_id和每个user_id的stunden (stunden=hours)之和。我已经尝试使用以下查询。
SELECT
(SELECT SUM(s.stunden) AS Zeit FROM stunden s GROUP BY s.user_id, s.einsatz_id) AS STUNDEN,
m.nachname,
m.vorname,
a.einsatz
FROM
stunden s,
mitglieder m,
arbeitseinsatz a
WHERE
s.user_id = m.id
AND s.einsatz_id = a.einsatz_id
GROUP BY s.user_id, s.einsatz_id
ORDER BY m.nachname , m.vorname ASC
它会导致以下错误消息:
"ERROR 1242 (21000): Subquery returns more than 1 row".
任何帮助都将不胜感激。
转载请注明出处:http://www.hrtxgs.com/article/20230526/2161066.html
随机推荐
-
通过MySql ()递增SUM变量不正确
我正在尝试组合一个按日期对记录进行分组的查询,以及该特定日期的合计(一天中可以有多个条目),但我还需要一个运行的合计,我打算使用一个MySQL变量。我的问题是,累积合计列似乎只包含该日期的SUM()。因此,这对每日总计很有效。SELECT ...
-
MySQL SUM and WHERE仅提供单一结果
当我使用WHERE和一起计数时,我遇到了问题。我有3个表: T1和T2,以及T3中的t1.id和t2.id。我需要打印来自T1的所有带有特定城市名称的结果,并计算有多少员工在该项目上工作。所以我试着SELECT t1.name, COUNT...
-
Mysql使用join从两个表中选择sum
我想从政策和支付两个表中获得余额的值。MySQL代码如下:SELECT Sum(policy.premium) AS `to...
-
MYSQL sum (如果) with group by NAME,但某个名称需要sum
我有一个关于SQL的问题。这就是查询。SELECT Customer, SUM(IF(date_format(OutputDate, %Y) = 2020 AND date_format(OutputDate, %m) = ...
-
如何将sum转换为time - mysql
在mysql数据库中,我创建了leave“表:+--------+---------+---------+-------------+---------+-------------------------------+ |ID_LEAVE|...
-
MYSQL-使用sum(case when条件1)和count(case when条件1)时得到不同的结果
我使用下面的查询来计算行数,我想知道当我在查询中使用sum()时,它返回正确,但当我使用count时,它返回false。我完成了这项工作,但我需要澄清这一点,以便进一步发展自己。SELECT SUM(CASE WHEN ...
-
如果其他列具有相同的数据python和mysql,则为SUM列
我正在尝试找到一种方法,如果日期列具有相同的日期,则在SELECT语句上对数据库的一列中的数据求和。我的表将有三列: Ticker、提及和数据。这个例子的记号是BTC,可能有10行,这10行对每一行都有不同的提及计数(INT)。那么日期:4...
-
mysql过滤器null sum
最小示例我有一个包含两列的table1 (id,name)1 asdf 2 fdsa 3 qwerty 4 ytrewq复制我还有一个包含三列(id、ref、num)的table21 1 0.1 2 1 5.0 3 1 -3.9 4 2 2...
-
对于包含空值的窗口,MySQL sum将返回null
我正在尝试获得每个客户端在过去3个月的行(不包括当前行)的收入总和。Databricks中当前尝试的最小示例:cols = [Client,Month,Revenue] df_pd = pd.DataFrame([[A,201701,100...
-
MySql:是否可以SUM IF或COUNT IF?
我有一个“小时”列,我有一个“种类”列(可以是1,2或3) 我想做类似的事情: SELECT count(id), SUM(hour) as totHour, SUM( IF ( kind ...