を使用している右括弧が欠落していて、私はそれはあなたが望んでいる場合は、別の列を作成するには、以下のロジックを確認してください、私はあなたのクエリのために具体的に行かないだろう、エラーメッセージを取得しています...
Select ID, Type, IDH, DMVOL from
(Select ID, Type, count(distinct HORDER.H_ORDER_BK) IDH, 0 DMVOL from Table_A
Union All
Select ID, Type, 0 IDH, count(distinct ordmast_srcid) DMVOL from Table_B)
PS:イメージリンクを開くことができません。
編集:
Select sys_db_name,entity_id,ORD_DEL_DT,SUM(IDH) IDH, Sum(DM_VOL) DM_VOL from (
SELECT 'IDH' tb1,LDELIVERYORDER.sys_db_name sys_db_name,
SORDERMAIN.ENTITY_ID ENTITY_ID,
TO_NUMBER (TO_CHAR (ORD_DEL_DT, 'YYYYMMDD')) ORD_DEL_DT,
count(distinct HORDER.H_ORDER_BK) IDH,
0 DM_VOL
FROM INT_CDW_DV.L_DELIVERY_ORDER LDELIVERYORDER
INNER JOIN
INT_CDW_DV.H_ORDER HORDER
ON HORDER.H_ORDER_ID = LDELIVERYORDER.H_ORDER_ID
AND HORDER.SYS_DB_NAME = LDELIVERYORDER.SYS_DB_NAME
AND HORDER.SYS_DB_NAME in ('AS')
INNER JOIN
(SELECT S_ORDER_MAIN.ENTITY_ID,
S_ORDER_MAIN.H_ORDER_ID,
S_ORDER_MAIN.SYS_DB_NAME
FROM INT_CDW_DV.S_ORDER_MAIN
INNER JOIN
( SELECT S_ORDER_MAIN.H_ORDER_ID,
S_ORDER_MAIN.SYS_DB_NAME,
MAX (S_ORDER_MAIN.SYS_VALID_FROM_DTS)
AS SYS_VALID_FROM_DTS
FROM INT_CDW_DV.S_ORDER_MAIN
WHERE S_ORDER_MAIN.SYS_DB_NAME in ('AS')
GROUP BY S_ORDER_MAIN.H_ORDER_ID, S_ORDER_MAIN.SYS_DB_NAME) b
ON S_ORDER_MAIN.H_ORDER_ID = b.H_ORDER_ID
AND S_ORDER_MAIN.SYS_VALID_FROM_DTS =
b.SYS_VALID_FROM_DTS
AND S_ORDER_MAIN.SYS_DB_NAME = b.SYS_DB_NAME) SORDERMAIN
ON HORDER.H_ORDER_ID = SORDERMAIN.H_ORDER_ID
AND HORDER.SYS_DB_NAME = SORDERMAIN.SYS_DB_NAME
INNER JOIN
(SELECT S_DELIVERY_MAIN.ORD_DEL_DT,
S_DELIVERY_MAIN.H_DELIV_ID,
S_DELIVERY_MAIN.SYS_DB_NAME
FROM INT_CDW_DV.S_DELIVERY_MAIN
INNER JOIN
( SELECT S_DELIVERY_MAIN.H_DELIV_ID,
S_DELIVERY_MAIN.SYS_DB_NAME,
MAX (S_DELIVERY_MAIN.SYS_VALID_FROM_DTS)
AS SYS_VALID_FROM_DTS
FROM INT_CDW_DV.S_DELIVERY_MAIN
WHERE
S_DELIVERY_MAIN.SYS_DB_NAME in ('AS')
GROUP BY S_DELIVERY_MAIN.H_DELIV_ID,
S_DELIVERY_MAIN.SYS_DB_NAME) b
ON S_DELIVERY_MAIN.H_DELIV_ID = b.H_DELIV_ID
AND S_DELIVERY_MAIN.SYS_VALID_FROM_DTS =
b.SYS_VALID_FROM_DTS
AND S_DELIVERY_MAIN.SYS_DB_NAME = b.SYS_DB_NAME) SDELIVERYMAIN
ON LDELIVERYORDER.H_DELIV_ID = SDELIVERYMAIN.H_DELIV_ID
AND LDELIVERYORDER.SYS_DB_NAME = SDELIVERYMAIN.SYS_DB_NAME
WHERE ORD_DEL_DT between to_date ('20170717', 'YYYYMMDD') and to_date ('20170723', 'YYYYMMDD')
and LDELIVERYORDER.sys_db_name in ('AS') and SORDERMAIN.ENTITY_ID = 26
group by LDELIVERYORDER.sys_db_name,
SORDERMAIN.ENTITY_ID,
TO_NUMBER (TO_CHAR (ORD_DEL_DT, 'YYYYMMDD'))
order by LDELIVERYORDER.sys_db_name,
SORDERMAIN.ENTITY_ID,
TO_NUMBER (TO_CHAR (ORD_DEL_DT, 'YYYYMMDD'))
UNION ALL
select 'DMVOL' tb2,sys_db_name,entity_id,shipping_dayid ORD_DEL_DT, 0 IDH, count(distinct ordmast_srcid) DM_VOL
from int_pub_edw.dm_valid_order_line
where shipping_dayid between 20170717 and 20170723
and sys_db_name = 'AS'
and entity_id = 26
and valid_order=1
group by sys_db_name,entity_id,shipping_dayid
) group by sys_db_name,entity_id,ORD_DEL_DT
は、私が試したし、質問に私の答えを更新しましたが、私はUNIONですべてのラインを右paranthesisを逃すようなエラーを取得していますし、また、私は私の答えを更新したとのピボット条件を追加した[これを試してみてください]下が、正しいかどうかわからない – Andrew
@Andrew私の編集した答えを試してみてください。 – pOrinG
UNION ALLに括弧がないと同じエラーが発生する – Andrew