我正在尝试使用联合对三个查询的计数求和。这些查询还包含其中的 group by 子句。以下是我写的查询:
select
extract(year from start_date),
extract(month from start_date),
APPLICATION_TYPE,
sum(TOTAL) as Overall_TOTAL
from (
select
extract(year from A.start_date) as Start_Year,
extract(month from A.start_date) as Start_Month,
A.APPLICATION_TYPE as Type,
count(A.TRANSACTION_NUMBER) as Total
from lnr_application A
where
A.START_DATE >= to_date('&sdate','DD/MM/YYYY')
and A.START_DATE <= to_date('&edate','DD/MM/YYYY')
and A.permission_type = 'HRW'
and A.status_cd in ('AP')
group by extract(year from start_date), extract(month from start_date), A.APPLICATION_TYPE
union all
select
extract (year from A.tstamp) as Start_Year,
extract (month from A.tstamp) as Start_Month,
A.application_type as Type,
count(A.transaction_number) as Total
from lnr_application A
where
A.permission_type = 'HRW'
and A.status_cd in ('RF')
and trunc(A.tstamp) >= to_date ('&sdate','dd/mm/yyyy')
and trunc(A.tstamp) <= to_date ('&edate','dd/mm/yy')
group by extract (year from A.tstamp), extract (month from A.tstamp), A.application_type
union all
select
extract (year from A.tstamp) as Start_Year,
extract (month from A.tstamp) as Start_Month,
A.application_type as Type,
count(A.transaction_number) as Total
from lnr_application A
where
A.permission_type = 'HRW'
and A.status_cd in ('CL')
and trunc(A.tstamp) >= to_date ('&sdate','dd/mm/yyyy')
and trunc(A.tstamp) <= to_date ('&edate','dd/mm/yy')
group by extract (year from A.tstamp), extract (month from A.tstamp), A.application_type
) tmp
group by extract(year from start_date), extract(month from start_date), APPLICATION_TYPE
order by extract(year from start_date), extract(month from start_date), APPLICATION_TYPE
当我执行查询时,我收到一条错误消息,它Start_Date
是无效的标识符。如果我从顶部删除 sum 组件,即合并所有三个查询,我会得到以下结果:
2011 7 A 627
2011 7 A 21
2011 7 A 1
2011 7 C 1585
2011 7 C 1
2011 7 I 1
2011 7 I 154
2011 7 I 3
我想合计各个年份、月份和应用程序类型的计数总和,如下所示:
2011 7 A 649
2011 7 C 1586
2011 7 I 158
有人可以帮帮我吗?