为 Union All 查询计算 Month to date 、 6 month 和 Year to date

Calculate Month to date , 6 month and Year to date for Union All Query

我正在尝试计算使用 Union All 为两个不同的表(一个用于接收,一个用于销售)创建的查询的月初至今和年初至今。他们都有相同的供应商名称。我创建了如下查询,但可以计算当月至今、过去六个月或今年至今,因为我每次都会出错。有什么想法吗?我使用了以下代码

SELECT VEND_NO,
        ACTV_DAT,
       SUM(RECVR_SUB_TOT)AS RECV_TOT,
       SUM(CALC_EXT_PRC) AS SAL_TOT

FROM ((SELECT P.VEND_NO, P.RECVR_DAT as ACTV_DAT, P.RECVR_SUB_TOT, 0 as CALC_EXT_PRC 
       FROM PO_RECVR_HIST P
      ) UNION ALL
      (SELECT S.ITEM_VEND_NO, S.BUS_DAT, 0, CALC_EXT_PRC
       FROM PS_TKT_HIST_LIN S
      )
     ) PS

GROUP BY VEND_NO,
ACTV_DAT,
CALC_EXT_PRC   
ORDER BY VEND_NO,
ACTV_DAT;  

group by 子句中删除 CALC_EXT_PRC

SELECT
    VEND_NO
  , ACTV_DAT
  , SUM( RECVR_SUB_TOT ) AS RECV_TOT
  , SUM( CALC_EXT_PRC )  AS SAL_TOT

FROM (
    SELECT
        P.VEND_NO
      , P.RECVR_DAT     AS ACTV_DAT
      , P.RECVR_SUB_TOT
      , 0               AS CALC_EXT_PRC
    FROM PO_RECVR_HIST P

    UNION ALL
    SELECT
        S.ITEM_VEND_NO
      , S.BUS_DAT
      , 0
      , CALC_EXT_PRC
    FROM PS_TKT_HIST_LIN S

) PS
GROUP BY
    VEND_NO
  , ACTV_DAT
ORDER BY
    VEND_NO
  , ACTV_DAT;

此外,联合的每个部分都不需要括号。