如何为同一个查询中的不同列指定不同的条件?
根据我的理解,条件在应用于整个表的where子句中指定。但是,如果我想要单个列的单个条件,并且有多个列具有相同字段的不同条件,我该如何指定条件。
我的情况,
我有一个表格,例如10列。
我必须在某些日期之间过滤每个列的条件。即,
日期01/01/1990和01/10/1990之间的A1列之和
日期01/01/1992和01/10/1992之间的A2列之和
和其他类似的列。
所有这些我必须进行单一查询。
此日期也可在表格中找到
我可以使用sum(A1)(to_date之间的分区(' 01/01 / 1990')和to_date(' 01/10 / 1990'))?
如果是的话,我无法在分区之间使用。我得到错误"错过右括号"。
请解释。
提前谢谢!
答案 0 :(得分:2)
类似的东西: -
select
a.col1,
sum (case when a.YourDateColumn between to_date ('01/01/1900', 'DD/MM/YYYY') and to_date ('01/10/1990', 'DD/MM/YYYY') then a.a1 else 0 end) as a1total,
sum (case when a.YourDateColumn between to_date ('01/01/1992', 'DD/MM/YYYY') and to_date ('01/10/1992', 'DD/MM/YYYY') then a.a2 else 0 end) as a2total
from A
group by a.col1