我想计算3列各自列的营业日。 例如:
REC_ENTER_BUSS_DAY
将计算REC_CREATED_DATE
和ENTER_DATE
之间的营业日。REC_SCAN_BUSS_DAY
将在REC_CREATED_DATE
和SCAN_DT
INDX_BUS_DAY
和REC_CREATED_DATE
之间INDX_DT
。我的日历表包含营业日指标BUS_DT_IND='Y'
和'N'
。
我希望一次输出所有三个端口。
任何人都可以帮我查询。
Select A.REC_ENTR_B_DY
, B.REC_SCAN_B_DY
, C.INDX_B_DY
from (select ENTR_DT
, REC_CREATED_DT
, SUM(WHEN BUS_DT_IND='Y' then 1 else 0) as REC_ENTR_B_DY
from RECORD
join calendar
on calendar.Calendar_date between ENTR_DT and REC_CREATED_DT
group by 1,2) A
LEFT JOIN (select SCAN_DT
, REC_CREATED_DT
, SUM(WHEN BUS_DT_IND='Y' then 1 else 0) as REC_SCAN_B_DY
from RECORD
join calendar on calendar.Calendar_date between SCAN_DT and REC_CREATED_DT
group by 1,2) B
on A.REC_CREATED_DT=B.REC_CREATED_DT
LEFT JOIN (select INDX_DT
, REC_CREATED_DT
, SUM(WHEN BUS_DT_IND='Y' then 1 else 0) as REC_SCAN_B_DY
from RECORD
join calendar
on calendar.Calendar_date between INDX_DT and REC_CREATED_DT
group by 1,2)C
on A.REC_CREATED_DT=C.REC_CREATED_DT