我要数一数我们会员的工作时间,他们在帮助我们。该表如下所示:

    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

随机推荐

  1. 通过MySql ()递增SUM变量不正确

    我正在尝试组合一个按日期对记录进行分组的查询,以及该特定日期的合计(一天中可以有多个条目),但我还需要一个运行的合计,我打算使用一个MySQL变量。我的问题是,累积合计列似乎只包含该日期的SUM()。因此,这对每日总计很有效。SELECT ...

  2. MySQL SUM and WHERE仅提供单一结果

    当我使用WHERE和一起计数时,我遇到了问题。我有3个表: T1和T2,以及T3中的t1.id和t2.id。我需要打印来自T1的所有带有特定城市名称的结果,并计算有多少员工在该项目上工作。所以我试着SELECT t1.name, COUNT...

  3. Mysql使用join从两个表中选择sum

    我想从政策和支付两个表中获得余额的值。MySQL代码如下:SELECT Sum(policy.premium) AS `to...

  4. MYSQL sum (如果) with group by NAME,但某个名称需要sum

    我有一个关于SQL的问题。这就是查询。SELECT Customer, SUM(IF(date_format(OutputDate, %Y) = 2020 AND date_format(OutputDate, %m) = ...

  5. 如何将sum转换为time - mysql

    在mysql数据库中,我创建了leave“表:+--------+---------+---------+-------------+---------+-------------------------------+ |ID_LEAVE|...

  6. MYSQL-使用sum(case when条件1)和count(case when条件1)时得到不同的结果

    我使用下面的查询来计算行数,我想知道当我在查询中使用sum()时,它返回正确,但当我使用count时,它返回false。我完成了这项工作,但我需要澄清这一点,以便进一步发展自己。SELECT SUM(CASE WHEN ...

  7. 如果其他列具有相同的数据python和mysql,则为SUM列

    我正在尝试找到一种方法,如果日期列具有相同的日期,则在SELECT语句上对数据库的一列中的数据求和。我的表将有三列: Ticker、提及和数据。这个例子的记号是BTC,可能有10行,这10行对每一行都有不同的提及计数(INT)。那么日期:4...

  8. 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...

  9. 对于包含空值的窗口,MySQL sum将返回null

    我正在尝试获得每个客户端在过去3个月的行(不包括当前行)的收入总和。Databricks中当前尝试的最小示例:cols = [Client,Month,Revenue] df_pd = pd.DataFrame([[A,201701,100...

  10. MySql:是否可以SUM IF或COUNT IF?

    我有一个“小时”列,我有一个“种类”列(可以是1,2或3) 我想做类似的事情: SELECT count(id), SUM(hour) as totHour, SUM( IF ( kind ...