我把这三个语句贴出来 a1
SELECT O.ORDER_NUMBER,O.CUSTOMER_NUMBER,O.ORDERED_DATE, NVL(SUM(D.AMOUNT),0) AS AMOUNT,C.ATTRIBUTE17 AS SLEVEL,RC.ATTRIBUTE19 as cdate
FROM EXNBT_ORDER_HEADER_s_V O,EXNBT_Order_Line_s_V D,ONT.OE_ORDER_HEADERS_ALL OE,AR_CUSTOMERS_V C,RA_CUSTOMERS RC
WHERE O.ORDER_NUMBER = :id
AND O.ORDER_NUMBER=D.ORDER_NUMBER
AND O.CUSTOMER_NUMBER=C.CUSTOMER_NUMBER
AND O.CUSTOMER_NUMBER=RC.CUSTOMER_NUMBER
AND O.ORDER_NUMBER=OE.ORDER_NUMBER
AND OE.Attribute9='Y'
AND RC.STATUS = 'A'
AND (NOT RC.ATTRIBUTE17 IS NULL)
AND RC.ATTRIBUTE17 not in('连锁店')
AND RC.SALES_CHANNEL_CODE='ZHUANMAI'
AND RC.ATTRIBUTE19 IS NOT NULL "
GROUP BY O.ORDER_NUMBER,O.CUSTOMER_NUMBER,O.ORDERED_DATE,C.ATTRIBUTE17,RC.ATTRIBUTE19
a2:
SELECT esc.CUSTOMER_NUMBER as SID,NVL(Sum(eolv.Amount),0) as SHOP
from EXNBT_ORDER_LINE_s_V eolv, EXNBT_ORDER_HEADER_s_V eohv, AR_CUSTOMERS_V esc,EXNBT_PRODUCT_V esp
Where eolv.ORDER_NUMBER = eohv.ORDER_NUMBER
and esc.CUSTOMER_NUMBER = eohv.CUSTOMER_NUMBER
and esp.INVENTORY_ITEM_ID = eolv.INVENTORY_ITEM_ID
and eolv.POINTS = 0
and esp.SHOP_MARK = 'Y'
and eolv.ORDER_NUMBER = :id
group by esc.CUSTOMER_NUMBER
a3
SELECT eohv.CUSTOMER_NUMBER as SID,Sum(eolv.Amount*(decode(NVL(esp.OIL_MARK,'N'),'N',0,'Y',1))) as OIL
from EXNBT_ORDER_LINE_s_V eolv, EXNBT_ORDER_HEADER_s_V eohv,EXNBT_PRODUCT_V esp
Where eohv.ORDER_NUMBER = eolv.ORDER_NUMBER
and esp.INVENTORY_ITEM_ID = eolv.INVENTORY_ITEM_ID
and eolv.POINTS = 0
and eolv.ORDER_NUMBER = :id
group by eohv.CUSTOMER_NUMBER
a1,a2,a3 分别传 :id 三个结果集 通过customer_number,插入到a4表中