繁体   English   中英

SQL - 基于两个条件对相似值求和

[英]SQL - SUM on similar values based on two conditions

我被困在尝试编写此 SQL 并收到此错误消息

ODBC::Error: 37000 (1003) SQL 编译错误:位置 8 处的语法错误第 8 行意外“GROUP”。:选择 CASE WHEN 宽恕 = 0 THEN 6 - SUM(attendance_points) END as total_attendance_p

目标:获取当前日期前 90 天内相同 driver_id 的出勤点总和(如果宽恕 = 0)和出勤点。

driver_id   attendance_points  forgiven    date
8087956           6                0     2020-02-12
8087956           1                0     2020-02-12
1160725           2                0     2020-02-01
1160725           6                0     2020-02-12
7922706           4                1     2020-02-13    
Select
    CASE WHEN forgiven = 0 THEN 6 - SUM(attendance_points) END as total_attendance_points,
    driver_id,
    date

    FROM attendance_events
    WHERE date < DATEADD("day", -90, current_date());

    GROUP BY 2
  

使用条件聚合

Select driver_id,date,
    sum(CASE WHEN forgiven = 0 THEN 6 - attendance_points END ) as total_attendance_points
    FROM attendance_events
    WHERE date < DATEADD("day", -90, current_date())
    group BY driver_id,date

从下面的查询使用

select driver_id,sum(attendance_points) from attendance_events where forgiven=0 and date >= DATEADD("day", -90, GETDATE()) group by driver_id

你可以在照片中看到结果在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM