我有一张这样的表
Day Operation Times Condition
Monday addition 3 done
Monday subtraction 2 done
Monday subtraction 4 uncomplete
Tuesday multiplication 3 done
Tuesday addition 1 done
Tuesday addition 8 uncomplete
Wednesday subtraction 1 uncomplete
我想在两个不同的列中转换Condition列,如
Day Operation Done Uncomplete Total
Monday addition 3 0 3
Monday subtraction 2 4 6
Tuesday multiplication 3 0 3
Tuesday addition 1 8 9
Wednesday subtraction 0 1 1
将完成和未完成的操作融合在一行
有没有办法在SQL中执行此操作?
到目前为止,我已经尝试了使用案例这样的Creating multiple columns from one column。我想我可能需要先按日分组,然后按操作分组。
答案 0 :(得分:0)
一种方法是条件聚合:
select day, operation,
sum(case when condition = 'done' then times else 0 end) as dones,
sum(case when condition = 'uncomplete' then times else 0 end) as uncompletes,
sum(times) as total
from t
group by day, operation;
您需要使用正在使用的数据库标记问题。 MS Access中的等价物是:
select day, operation,
sum(iif(condition = "done", times, 0)) as dones,
sum(iif(condition = "uncomplete", times, 0)) as uncompletes,
sum(times) as total
from t
group by day, operation;
答案 1 :(得分:0)
考虑到您在Microsoft Access上执行此操作,请参阅以下教程:https://www.youtube.com/watch?v=ZgerpTHzQes