9张表 (ABADJUSTMENT a, ABADJUSTMENTDETAIL b, ABINVOICE c, ABINVOICEITEM d, ABCREDITNOTE e,
ABOFFLINERECEIPT f, TMORG g, TMORGPROFILEBRANCH h, TMORGBRANCH i )a表的主键AB_ADJUSTMENT_ID, b表的主键为(AB_ADJUSTMENT_DETAIL_ID 和 AB_ADJUSTMENT_ID) a表和b表为一对多关系.
e表的主键为ab_creditnote_id . f表的主键为AB_RECEIPT_ID.
b表中的ADJUSTMENTSRC_ID 对应e表ab_creditnote_id 或者 f表AB_RECEIPT_ID 需要: 选出不重复的a表AB_ADJUSTMENT_ID,对应一条或者多条b表中的b.ADJUSTMENTSRC_ID, 根据b.ADJUSTMENTSRC_ID 从e表取得e.ab_creditnote_num(一对一)
或者b.ADJUSTMENTSRC_ID 从f表中取得f.RECEIPT_NUM(一对一), 一条ADJUSTMENTSRC_ID只会对应e表或者f表中的一条记录.不可能同时存在.(原则上至少存在一个)
那么要求将a表中的一打ab_adjustment_id 对应的一条或者多条的b.ADJUSTMENTSRC_ID中对应在e.ab_creditnote_num或者f.RECEIPT_NUM叠加成一个String字段中间用逗号分隔.烦请达人帮忙.多谢了!!!参考的SQL(不能实现). SELECT * FROM (SELECT a.AB_ADJUSTMENT_ID,a.PARENT_TYPE,a.PARENT_ID,a.ORG_NUM,
a.ADJUSTMENT_DATE,a.STATUS,a.ADJUSTMENT_NUM,
b.AB_ADJUSTMENT_DETAIL_ID,b.ADJUSTMENTSRC_TYPE,b.ADJUSTMENTSRC_ID,
b.ADJUSTMENT_AMT,
c.bizunit_key, c.costcentre_key,d.item_desc,
e.ab_creditnote_num,f.RECEIPT_NUM,(此处的两个字段需要叠加,)
g.reg_name, g.reg_num, g.reg_type,
row_number() over (partition by a.AB_ADJUSTMENT_ID order by a.AB_ADJUSTMENT_ID) row_number
FROM ABADJUSTMENT a, ABADJUSTMENTDETAIL b, ABINVOICE c, ABINVOICEITEM d, ABCREDITNOTE e,
ABOFFLINERECEIPT f, TMORG g, TMORGPROFILEBRANCH h, TMORGBRANCH i
WHERE a.AB_ADJUSTMENT_ID = b.AB_ADJUSTMENT_ID AND a.parent_id = c.INVOICE_ID
AND c.INVOICE_ID = d.INVOICE_ID AND (b.ADJUSTMENTSRC_ID = e.AB_CREDITNOTE_ID OR b.ADJUSTMENTSRC_ID = f.AB_RECEIPT_ID )
AND a.org_num = h.pb_id AND h.branch_id = i.branch_id AND i.org_id = g.org_id
order by a.AB_ADJUSTMENT_ID) a
WHERE a.row_number = 1
ABOFFLINERECEIPT f, TMORG g, TMORGPROFILEBRANCH h, TMORGBRANCH i )a表的主键AB_ADJUSTMENT_ID, b表的主键为(AB_ADJUSTMENT_DETAIL_ID 和 AB_ADJUSTMENT_ID) a表和b表为一对多关系.
e表的主键为ab_creditnote_id . f表的主键为AB_RECEIPT_ID.
b表中的ADJUSTMENTSRC_ID 对应e表ab_creditnote_id 或者 f表AB_RECEIPT_ID 需要: 选出不重复的a表AB_ADJUSTMENT_ID,对应一条或者多条b表中的b.ADJUSTMENTSRC_ID, 根据b.ADJUSTMENTSRC_ID 从e表取得e.ab_creditnote_num(一对一)
或者b.ADJUSTMENTSRC_ID 从f表中取得f.RECEIPT_NUM(一对一), 一条ADJUSTMENTSRC_ID只会对应e表或者f表中的一条记录.不可能同时存在.(原则上至少存在一个)
那么要求将a表中的一打ab_adjustment_id 对应的一条或者多条的b.ADJUSTMENTSRC_ID中对应在e.ab_creditnote_num或者f.RECEIPT_NUM叠加成一个String字段中间用逗号分隔.烦请达人帮忙.多谢了!!!参考的SQL(不能实现). SELECT * FROM (SELECT a.AB_ADJUSTMENT_ID,a.PARENT_TYPE,a.PARENT_ID,a.ORG_NUM,
a.ADJUSTMENT_DATE,a.STATUS,a.ADJUSTMENT_NUM,
b.AB_ADJUSTMENT_DETAIL_ID,b.ADJUSTMENTSRC_TYPE,b.ADJUSTMENTSRC_ID,
b.ADJUSTMENT_AMT,
c.bizunit_key, c.costcentre_key,d.item_desc,
e.ab_creditnote_num,f.RECEIPT_NUM,(此处的两个字段需要叠加,)
g.reg_name, g.reg_num, g.reg_type,
row_number() over (partition by a.AB_ADJUSTMENT_ID order by a.AB_ADJUSTMENT_ID) row_number
FROM ABADJUSTMENT a, ABADJUSTMENTDETAIL b, ABINVOICE c, ABINVOICEITEM d, ABCREDITNOTE e,
ABOFFLINERECEIPT f, TMORG g, TMORGPROFILEBRANCH h, TMORGBRANCH i
WHERE a.AB_ADJUSTMENT_ID = b.AB_ADJUSTMENT_ID AND a.parent_id = c.INVOICE_ID
AND c.INVOICE_ID = d.INVOICE_ID AND (b.ADJUSTMENTSRC_ID = e.AB_CREDITNOTE_ID OR b.ADJUSTMENTSRC_ID = f.AB_RECEIPT_ID )
AND a.org_num = h.pb_id AND h.branch_id = i.branch_id AND i.org_id = g.org_id
order by a.AB_ADJUSTMENT_ID) a
WHERE a.row_number = 1
解决方案 »
- 用pl/sql删除所有表
- 求助,orcle数据库同步问题
- 我想写一个脚本,把我写的sql的指定条件的数据导到文件里,怎么弄?
- Oracle中的语句级触发器,怎么实现禁止删除表dept中的记录.
- 请问,如何将一个select语句查询得到的结果输出到一个外部文件呢.
- 请教oracle表名中的前缀、后缀的含义。
- pl/sql 存储过程问题 不能insert
- 为什么我的personal 9i启动不了监听设备?
- 提供程序不支持带有 RECORD 或 TABLE 变量的 PL/SQL 存储过程/函数???
- 弱智问题,表空间如何定义!
- 分都押宝了 好心人进来帮我解决ORACLE基本问题
- oracle 中 备份与恢复的疑问?
SELECT AB_ADJUSTMENT_ID, WMSYS.WM_CONCAT(DISTINCT MYNUMS) NEW_NUMS
FROM (SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
E.AB_CREDITNOTE_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABCREDITNOTE E,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = E.AB_CREDITNOTE_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID
UNION
SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID, F.RECEIPT_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABOFFLINERECEIPT F,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = F.AB_RECEIPT_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID) TT
GROUP BY AB_ADJUSTMENT_ID;
下边贴出我傻瓜式更改后的SQL语句: 大家看看能不能简化下: 我觉得太冗余了.
----------------------
SELECT * FROM (SELECT AB_ADJUSTMENT_ID, PARENT_TYPE,PARENT_ID,ORG_NUM,ADJUSTMENT_DATE,
STATUS,ADJUSTMENT_NUM,SUM(AMT) AS ADJUSTMENT_AMT,
bizunit_key,costcentre_key,item_desc,reg_name,reg_num,reg_type,
WMSYS.WM_CONCAT(DISTINCT MYNUMS) ADJ_SOURCE_NUM ,
row_number() over (partition by AB_ADJUSTMENT_ID order by AB_ADJUSTMENT_ID) row_number
FROM (SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
A.PARENT_TYPE PARENT_TYPE,
A.PARENT_ID PARENT_ID,
A.ORG_NUM ORG_NUM,
A.ADJUSTMENT_DATE ADJUSTMENT_DATE,
A.STATUS STATUS,
A.ADJUSTMENT_NUM ADJUSTMENT_NUM,
B.ADJUSTMENT_AMT AMT,
B.AB_ADJUSTMENT_DETAIL_ID AB_ADJUSTMENT_DETAIL_ID,
B.ADJUSTMENTSRC_TYPE ADJUSTMENTSRC_TYPE,
C.bizunit_key bizunit_key,
C.costcentre_key costcentre_key,
D.item_desc item_desc,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
E.AB_CREDITNOTE_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABCREDITNOTE E,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = E.AB_CREDITNOTE_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID
UNION
SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
A.PARENT_TYPE PARENT_TYPE,
A.PARENT_ID PARENT_ID,
A.ORG_NUM ORG_NUM,
A.ADJUSTMENT_DATE ADJUSTMENT_DATE,
A.STATUS STATUS,
A.ADJUSTMENT_NUM ADJUSTMENT_NUM,
B.ADJUSTMENT_AMT AMT,
B.AB_ADJUSTMENT_DETAIL_ID AB_ADJUSTMENT_DETAIL_ID,
B.ADJUSTMENTSRC_TYPE ADJUSTMENTSRC_TYPE,
c.bizunit_key bizunit_key,
C.costcentre_key costcentre_key,
D.item_desc item_desc,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
F.RECEIPT_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABOFFLINERECEIPT F,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = F.AB_RECEIPT_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID) TT
GROUP BY AB_ADJUSTMENT_ID,PARENT_ID,PARENT_TYPE,ORG_NUM,ADJUSTMENT_DATE,STATUS,ADJUSTMENT_NUM,bizunit_key,
costcentre_key,item_desc,reg_name,reg_num,reg_type) a where a.row_number = 1 ;
-----------------------------------------------------------------谢谢楼上两位~!!!!!
SELECT * FROM (SELECT AB_ADJUSTMENT_ID, PARENT_TYPE,PARENT_ID,ORG_NUM,ADJUSTMENT_DATE,
STATUS,ADJUSTMENT_NUM,SUM(AMT) AS ADJUSTMENT_AMT,
bizunit_key,costcentre_key,item_desc,reg_name,reg_num,reg_type,
WMSYS.WM_CONCAT(DISTINCT MYNUMS) ADJ_SOURCE_NUM ,
row_number() over (partition by AB_ADJUSTMENT_ID order by AB_ADJUSTMENT_ID) row_number
FROM (SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
A.PARENT_TYPE PARENT_TYPE,
A.PARENT_ID PARENT_ID,
A.ORG_NUM ORG_NUM,
A.ADJUSTMENT_DATE ADJUSTMENT_DATE,
A.STATUS STATUS,
A.ADJUSTMENT_NUM ADJUSTMENT_NUM,
B.ADJUSTMENT_AMT AMT,
B.AB_ADJUSTMENT_DETAIL_ID AB_ADJUSTMENT_DETAIL_ID,
B.ADJUSTMENTSRC_TYPE ADJUSTMENTSRC_TYPE,
C.bizunit_key bizunit_key,
C.costcentre_key costcentre_key,
D.item_desc item_desc,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
E.AB_CREDITNOTE_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABCREDITNOTE E,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = E.AB_CREDITNOTE_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID
UNION
SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
A.PARENT_TYPE PARENT_TYPE,
A.PARENT_ID PARENT_ID,
A.ORG_NUM ORG_NUM,
A.ADJUSTMENT_DATE ADJUSTMENT_DATE,
A.STATUS STATUS,
A.ADJUSTMENT_NUM ADJUSTMENT_NUM,
B.ADJUSTMENT_AMT AMT,
B.AB_ADJUSTMENT_DETAIL_ID AB_ADJUSTMENT_DETAIL_ID,
B.ADJUSTMENTSRC_TYPE ADJUSTMENTSRC_TYPE,
c.bizunit_key bizunit_key,
C.costcentre_key costcentre_key,
D.item_desc item_desc,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
F.RECEIPT_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABOFFLINERECEIPT F,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = F.AB_RECEIPT_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID) TT
GROUP BY AB_ADJUSTMENT_ID,PARENT_ID,PARENT_TYPE,ORG_NUM,ADJUSTMENT_DATE,STATUS,ADJUSTMENT_NUM,bizunit_key,
costcentre_key,item_desc,reg_name,reg_num,reg_type) a where a.row_number = 1 ;
--1.先查union两端的两个表;
--2.再union;
--3.再group by;
--4. ......--另:
SELECT *
FROM (SELECT AB_ADJUSTMENT_ID,
PARENT_TYPE,
PARENT_ID,
ORG_NUM,
ADJUSTMENT_DATE, ... --这一层的字段要不要加上a. 如:a.AB_ADJUSTMENT_ID, 等?
--试一下:SELECT *
FROM (SELECT tt.AB_ADJUSTMENT_ID,
tt.PARENT_TYPE,
tt.PARENT_ID,
tt.ORG_NUM,
tt.ADJUSTMENT_DATE,
tt.STATUS,
tt.ADJUSTMENT_NUM,
tt.SUM(AMT) AS ADJUSTMENT_AMT,
tt.bizunit_key,
tt.costcentre_key,
tt.item_desc,
tt.reg_name,
tt.reg_num,
tt.reg_type,
WMSYS.WM_CONCAT(DISTINCT tt.MYNUMS) ADJ_SOURCE_NUM,
row_number() over(partition by tt.AB_ADJUSTMENT_ID order by tt.AB_ADJUSTMENT_ID) row_number
FROM (SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
A.PARENT_TYPE PARENT_TYPE,
A.PARENT_ID PARENT_ID,
A.ORG_NUM ORG_NUM,
A.ADJUSTMENT_DATE ADJUSTMENT_DATE,
A.STATUS STATUS,
A.ADJUSTMENT_NUM ADJUSTMENT_NUM,
B.ADJUSTMENT_AMT AMT,
B.AB_ADJUSTMENT_DETAIL_ID AB_ADJUSTMENT_DETAIL_ID,
B.ADJUSTMENTSRC_TYPE ADJUSTMENTSRC_TYPE,
C.bizunit_key bizunit_key,
C.costcentre_key costcentre_key,
D.item_desc item_desc,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
E.AB_CREDITNOTE_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABCREDITNOTE E,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = E.AB_CREDITNOTE_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID
UNION
SELECT A.AB_ADJUSTMENT_ID AB_ADJUSTMENT_ID,
A.PARENT_TYPE PARENT_TYPE,
A.PARENT_ID PARENT_ID,
A.ORG_NUM ORG_NUM,
A.ADJUSTMENT_DATE ADJUSTMENT_DATE,
A.STATUS STATUS,
A.ADJUSTMENT_NUM ADJUSTMENT_NUM,
B.ADJUSTMENT_AMT AMT,
B.AB_ADJUSTMENT_DETAIL_ID AB_ADJUSTMENT_DETAIL_ID,
B.ADJUSTMENTSRC_TYPE ADJUSTMENTSRC_TYPE,
c.bizunit_key bizunit_key,
C.costcentre_key costcentre_key,
D.item_desc item_desc,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
F.RECEIPT_NUM MYNUMS
FROM ABADJUSTMENT A,
ABADJUSTMENTDETAIL B,
ABINVOICE C,
ABINVOICEITEM D,
ABOFFLINERECEIPT F,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.AB_ADJUSTMENT_ID = B.AB_ADJUSTMENT_ID
AND A.PARENT_ID = C.INVOICE_ID
AND C.INVOICE_ID = D.INVOICE_ID
AND B.ADJUSTMENTSRC_ID = F.AB_RECEIPT_ID
AND A.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID) TT
GROUP BY tt.AB_ADJUSTMENT_ID,
tt.PARENT_ID,
tt.PARENT_TYPE,
tt.ORG_NUM,
tt.ADJUSTMENT_DATE,
tt.STATUS,
tt.ADJUSTMENT_NUM,
tt.bizunit_key,
tt.costcentre_key,
tt.item_desc,
tt.reg_name,
tt.reg_num,
tt.reg_type) tab
where tab.row_number = 1;
A.AB_ADJUSTMENT_ID,
A.PARENT_TYPE,
A.PARENT_ID,
A.ORG_NUM,
A.ADJUSTMENT_DATE,
A.STATUS,
A.ADJUSTMENT_NUM,
B.AMT,
c.bizunit_key,
C.costcentre_key,
D.item_desc,
G.reg_name,
G.reg_num,
G.reg_type,
B.MYNUMS
FROM ABADJUSTMENT A
JOIN ABINVOICE C ON A.PARENT_ID = C.INVOICE_ID
JOIN ABINVOICEITEM D ON C.INVOICE_ID = D.INVOICE_ID
JOIN TMORGPROFILEBRANCH H ON A.ORG_NUM = H.PB_ID
JOIN TMORGBRANCH I ON H.BRANCH_ID = I.BRANCH_ID
JOIN TMORG G ON I.ORG_ID = G.ORG_ID
JOIN
(
SELECT B.AB_ADJUSTMENT_ID,SUM(ADJUSTMENT_AMT) AMT,WMSYS.WM_CONCAT(E.AB_CREDITNOTE_NUM || E.RECEIPT_NUM) MYNUMS
FROM ABADJUSTMENTDETAIL B
LEFT JOIN ABCREDITNOTE E ON B.ADJUSTMENTSRC_ID = E.AB_CREDITNOTE_ID
LEFT JOIN ABOFFLINERECEIPT F ON B.ADJUSTMENTSRC_ID = F.AB_RECEIPT_ID
GROUP BY B.AB_ADJUSTMENT_ID
) B ON A.AB_ADJUSTMENT_ID=B.AB_ADJUSTMENT_ID
同样借助各位的帮忙 .
解决了另外一个SQL.SELECT * FROM (
SELECT AB_WRITEOFF_ID,WRITEOFFSRC_TYPE,WRITEOFFSRC_ID,WRITEOFF_DATE,WRITEOFF_AMT,
STATUS,WRITEOFF_NUM,reg_name,reg_num,reg_type,
WMSYS.WM_CONCAT(DISTINCT MYBIZUNIT) bizunit_key,
WMSYS.WM_CONCAT(DISTINCT MYCOSTCENTRE) costcentre_key,
WMSYS.WM_CONCAT(DISTINCT MYITEMDESC) item_desc,
WMSYS.WM_CONCAT(DISTINCT MYORGNUM) ORG_NUM,
WMSYS.WM_CONCAT(DISTINCT MYSOURCENUM) writeoff_src_num,
row_number() over (partition by AB_WRITEOFF_ID order by AB_WRITEOFF_ID) row_number
FROM (SELECT A.AB_WRITEOFF_ID AB_WRITEOFF_ID,
A.WRITEOFFSRC_TYPE WRITEOFFSRC_TYPE,
A.WRITEOFFSRC_ID WRITEOFFSRC_ID,
A.WRITEOFF_DATE WRITEOFF_DATE,
A.WRITEOFF_AMT WRITEOFF_AMT,
A.WRITEOFF_NUM WRITEOFF_NUM,
A.STATUS STATUS,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
to_number(B.ORG_NUM) MYORGNUM,
B.BIZUNIT_KEY MYBIZUNIT,
B.costcentre_key MYCOSTCENTRE,
C.ITEM_DESC MYITEMDESC,
B.invoice_num MYSOURCENUM
FROM ABWRITEOFF A,
ABINVOICE B,
ABINVOICEITEM C,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.WRITEOFFSRC_ID = B.INVOICE_ID
AND B.INVOICE_ID = C.INVOICE_ID
AND B.ORG_NUM = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID
UNION
SELECT A.AB_WRITEOFF_ID AB_WRITEOFF_ID,
A.WRITEOFFSRC_TYPE WRITEOFFSRC_TYPE,
A.WRITEOFFSRC_ID WRITEOFFSRC_ID,
A.WRITEOFF_DATE WRITEOFF_DATE,
A.WRITEOFF_AMT WRITEOFF_AMT,
A.WRITEOFF_NUM WRITEOFF_NUM,
A.STATUS STATUS,
G.reg_name reg_name,
G.reg_num reg_num,
G.reg_type reg_type,
J.ORG_ID MYORGNUM,
NULL MYBIZUNIT,
NULL MYCOSTCENTRE,
'Refund Request' MYITEMDESC,
J.RF_RECEIVABLE_CODE MYSOURCENUM
FROM ABWRITEOFF A,
ABINVOICE B,
RFRECEIVABLEREQUEST J,
ABINVOICEITEM C,
TMORG G,
TMORGPROFILEBRANCH H,
TMORGBRANCH I
WHERE A.WRITEOFFSRC_ID = J.RF_RECEIVABLE_ID
AND J.ORG_ID = H.PB_ID
AND H.BRANCH_ID = I.BRANCH_ID
AND I.ORG_ID = G.ORG_ID) TT
GROUP BY AB_WRITEOFF_ID,WRITEOFFSRC_TYPE,WRITEOFFSRC_ID,WRITEOFF_DATE,WRITEOFF_AMT,WRITEOFF_NUM ,STATUS
,reg_name,reg_num,reg_type) a where a.row_number = 1 ;
结帖. 谢谢大家!