通过一个查询输出3个聚合列

时间:2015-10-02 09:41:38

标签: teradata

我想计算3列各自列的营业日。 例如:

  1. REC_ENTER_BUSS_DAY将计算REC_CREATED_DATEENTER_DATE之间的营业日。
  2. REC_SCAN_BUSS_DAY将在REC_CREATED_DATESCAN_DT
  3. 之间进行计算 在INDX_BUS_DAYREC_CREATED_DATE之间
  4. INDX_DT
  5. 我的日历表包含营业日指标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
    

0 个答案:

没有答案