Рассчитать месяц до даты, 6 месяцев и год до даты для Union All Query - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь рассчитать месяц до даты и год до даты для запроса, созданного с помощью 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;  

1 Ответ

0 голосов
/ 19 ноября 2018

Удалить CALC_EXT_PRC из вашего group by предложения

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;

Также вам не нужны скобки для каждой части объединения.

...