【问题标题】:MySQL Query. Extracting Sum(total) and Sum(total) with a conditionMySQL 查询。使用条件提取 Sum(total) 和 Sum(total)
【发布时间】:2011-08-29 13:21:25
【问题描述】:

关于我的问题 SQL 是,

我有一个表格,用户可以在其中输入名为 time_report 的时间报告数据。每个 time_report 都输入一个服务代码,每个代码都有不同的含义,包括开始、停止、时间和总计。

以下是在 time_report 表中输入的数据示例。

t_id 日期 用户 客服 关闭 系统 部件 开始 停止 总计 53 2011-05-02 13 0 48 4 0 0 09:00 17.15 8.15 54 2011-05-03 13 0 49 4 0 0 09:00 17:00 8 55 2011-05-04 13 0 48 4 0 0 09:00 17.15 8:15 61 2011-05-04 1 0 52 4 0 0 09:00 17.15 8:15 62 2011-05-05 1 0 48 4 0 0 09:00 17.15 8:15

我正在尝试运行查询以提取 3 条信息。

用户(用户是 users.user_id 的外键) 每个用户的总和(总计)。 服务

服务是servicecodes.s_id的外键

当我尝试运行查询以获取总和时(总体上可以,但我无法将信息组合在一起

mysql> SELECT Users.full_name,sum(total) -> FROM time_report,用户 -> WHERE time_report.User = users.user_id -> 与日期 -> '2011-0502' 之间 -> 和“2011-05-11” -> 按用户分组; +-----------------+------------+ |全名 |总和(总计)| +-----------------+------------+ |钱希金斯 | 26 | |华莱士病房 | 23 | |杰森·沃德 | 42 | |托马斯伍兹 | 72 | |彼得琼斯 | 49 | | fintan corrigan | 40 | |大卫琼斯 | 35 | |一月琼斯 | 23 | |乔·约翰逊 | 24 | +-----------------+------------+ 9 行,1 个警告 (0.09)

当我使用服务运行查询时 SELECT Users.full_name,sum(total) AS Productive FROM time_report,用户 WHERE time_report.User = users.user_id 和日期 '2011-0502' 之间 和'2011-05-11' 和服务

但是如果我尝试加入报告,我会收到错误....如果我尝试将它作为子查询运行,我会收到错误

例子:

选择用户。全名,总和(总计) FROM time_report,用户 WHERE time_report.User = users.user_id 和日期 '2011-0502' 之间 和'2011-05-11' 按用户分组 联盟 SELECT Users.full_name, sum( total ) AS Productive FROM time_report,用户 WHERE time_report.User = users.user_id 和日期 '2011-0502' 之间 和'2011-05-11' 和服务

这会在一行中给出所有结果

全名总和(总计) 钱·希金斯 26 华莱士病房 23 杰森·沃德 42 托马斯伍兹 72 彼得·琼斯 49 芬坦·科里根 40 大卫琼斯 35 一月琼斯 23 乔·约翰逊 24 钱希金斯 14 杰森沃德 33 托马斯伍兹 53 彼得·琼斯 41 芬坦·科里根 32 大卫琼斯 27

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以使用CASE 语句来优化总和,并通过一个语句返回两个总和。

    SELECT  Users.full_name
            ,sum(total)
            ,sum(case when service < 49 then total else 0 end) AS Productive
    FROM    time_report
            , users
    WHERE   time_report.User = users.user_id
            AND date BETWEEN '2011-0502' AND '2011-05-11'
    GROUP BY 
            User
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-14
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多