解决方案 »
- oracle 安装问题 database/install/.oui: 2: Syntax error: ")" unexpected
- OracleDataAdapter.Fill()处于无限等待中。急啊,只有18分了。。
- oracle安装速度太慢怎么办?
- 急急急,Oracle 9i客户端连接Oracle8i的服务器乱码问题。
- 请教各位关于触发器的问题,在线等
- 请教怎么样在VB中调用ORACLE的函数
- update ..... (比较更新)!
- 傻傻的问,如何进入isql*plus,是i不是原来那个sqlplus
- 数据导入导出文本?
- 对Oracle存储过程的迷惑
- oracle11 导出sql文件 报错 java heap space 求高手指教
- oracle TEMP 临时表空间 各字段值为空
如下方法:
1、可以写oracle脚本,从orcl1中将数据备份出来,然后将备份出来的数据导入orcl2中。
2、 程序员:自己用jdbc写一个程序,用Timer类,会定时执行的,从orcl1中将数据查出来,插入orcl2中。如果数据量特别大,oracle数据库支持批量写入,用批量写入功能即可。
3、用DBLINK(oracle一个链接其他oracle库功能),首先在orcl1中创建一个dblink,然后写存储过程,在存储过程中用dblink通道将数据倒过去。
4、ogg方式。
考虑到施主的情况,推荐使用2、3。
WITH WLB AS(SELECT MATNR,BWKEY,'' AS VBELN,'' AS POSNR,
LFGJA,LFMON,VERPR,STPRS,PEINH,
VERPR*1.0/PEINH AS WLSJDJ,STPRS*1.0/PEINH AS WLBZDJ
FROM SAPSR3.MBEW
WHERE MANDT = '800'
AND PEINH <> 0
UNION SELECT MATNR,BWKEY,'' AS VBELN,'' AS POSNR,
LFGJA,LFMON,VERPR,STPRS,PEINH,
VERPR*1.0/PEINH AS WLSJDJ,STPRS*1.0/PEINH AS WLBZDJ
FROM SAPSR3.MBEWH
WHERE MANDT = '800'
AND PEINH <> 0
UNION
SELECT MATNR,BWKEY,VBELN,POSNR,
LFGJA,LFMON,VERPR,STPRS,PEINH,
VERPR*1.0/PEINH AS WLSJDJ,STPRS*1.0/PEINH AS WLBZDJ
FROM SAPSR3.EBEW
WHERE MANDT = '800'
AND PEINH <> 0
UNION
SELECT MATNR,BWKEY,VBELN,POSNR,
LFGJA,LFMON,VERPR,STPRS,PEINH,
VERPR*1.0/PEINH AS WLSJDJ,STPRS*1.0/PEINH AS WLBZDJ
FROM SAPSR3.EBEWH
WHERE MANDT = '800'
AND PEINH <> 0),
JHB AS(
SELECT JHD.VBELN,JHD.POSNR,JHD.VKORG,JHD.KUNNR,JHD.KUNAG,
JHD.JLFGJA,JHD.JLFMON,JHD.WADAT_IST,JHD.MATNR,JHD.ARKTX,JHD.WERKS,JHD.VRKME,JHD.NETWR,JHD.LFIMG,JHD.CK_VGBEL,
JHD.CK_VGPOS,JHD.PSTYV,JHD.BWART,JHD.SHKZG,JHD.KNTTP,JHD.MAT_KDAUF,JHD.MAT_KDPOS,
WLB.LFGJA AS WLFGJA,WLB.LFMON AS WLFMON,WLB.STPRS,WLB.VERPR,WLB.PEINH,WLB.WLBZDJ,WLB.WLSJDJ,WLB.VBELN AS TVBELN,WLB.POSNR AS TPOSNR,
(CASE WHEN JHD.LFIMG <> 0 THEN JHD.NETWR/JHD.LFIMG ELSE 0 END) AS QCBZJG,
(CASE WHEN JHD.LFIMG <> 0 THEN JHD.NETWR/JHD.LFIMG ELSE 0 END) AS QCSJJG,
(CASE WHEN JHD.VBELN <> JHD.CK_VGBEL THEN WLB.WLBZDJ ELSE (CASE WHEN JHD.LFIMG <> 0 THEN JHD.NETWR/JHD.LFIMG ELSE 0 END)END) AS QMBZDJ,
(CASE WHEN JHD.VBELN <> JHD.CK_VGBEL THEN WLB.WLSJDJ ELSE (CASE WHEN JHD.LFIMG <> 0 THEN JHD.NETWR/JHD.LFIMG ELSE 0 END)END) AS QMSJDJ,
JHD.LFIMG*WLB.WLBZDJ AS FHBZCB,
JHD.LFIMG*WLB.WLSJDJ AS FHSJCB,
JHD.LFIMG*WLB.WLSJDJ-JHD.LFIMG*WLB.WLBZDJ AS FHCY,
KPD.VGBEL,KPD.VGPOS,KPD.LFGJA,
KPD.LFMON,KPD.FKIMG,KPD.WAVWR,KPD.FKPCS,
KPD.FKIMG*WLB.WLBZDJ AS KPBZCB,
KPD.FKIMG*WLB.WLSJDJ AS KPSJCB,
KPD.FKIMG*WLB.WLBZDJ-KPD.WAVWR AS KPBZCY,
KPD.FKIMG*WLB.WLSJDJ-KPD.WAVWR AS KPSJCY
FROM
(
SELECT A.VBELN,B.POSNR,A.VKORG,A.KUNNR,A.NETWR,
A.KUNAG,A.WADAT_IST,
SUBSTR(A.WADAT_IST,1,4) JLFGJA,
SUBSTR(A.WADAT_IST,5,2) JLFMON,
B.MATNR,B.ARKTX,B.WERKS,B.VRKME,
(CASE WHEN B.SHKZG='X' THEN -1*B.LFIMG ELSE B.LFIMG END) LFIMG,
B.VGBEL AS CK_VGBEL,B.VGPOS AS CK_VGPOS,B.PSTYV,B.BWART,
B.SHKZG,B.KNTTP,
(CASE WHEN B.KNTTP='M' THEN B.VGBEL ELSE '' END) MAT_KDAUF,--CASE WHEN 预处理
(CASE WHEN B.KNTTP='M' THEN B.VGPOS ELSE '' END) MAT_KDPOS
FROM SAPSR3.LIKP A
INNER JOIN SAPSR3.LIPS B ON A.MANDT = B.MANDT AND A.VBELN = B.VBELN
INNER JOIN SAPSR3.VBAP C ON B.MANDT = C.MANDT AND B.VGBEL = C.VBELN AND B.VGPOS = C.POSNR
WHERE ( B.BWART IN ('601','602','633','634','643','644','657','658','673','674')
OR B.PSTYV IN ('TAQ','ZAQ1','ZAQ2','ZAQ3','ZAQ4') )
AND B.UEPOS = '000000'
AND A.WADAT_IST <> '00000000' UNION
SELECT A.VBELN,B.POSNR,A.VKORG,A.KUNNR,A.NETWR,
A.KUNNR AS KUNAG,A.ERDAT,
SUBSTR(A.ERDAT,1,4) JLFGJA,
SUBSTR(A.ERDAT,5,2) JLFMON,
B.MATNR,B.ARKTX,B.WERKS,B.VRKME,
(CASE WHEN B.SHKZG='X' THEN -1*B.ZMENG ELSE B.ZMENG END) LFIMG,
B.VBELN AS CK_VGBEL,B.POSNR AS CK_VGPOS,B.PSTYV,'' AS BWART,
B.SHKZG,B.KNTTP,
(CASE WHEN B.KNTTP='M' THEN B.VBELN ELSE '' END) MAT_KDAUF,
(CASE WHEN B.KNTTP='M' THEN B.POSNR ELSE '' END) MAT_KDPOS
FROM SAPSR3.VBAK A --522条数据
INNER JOIN SAPSR3.VBAP B ON A.MANDT = B.MANDT AND A.VBELN = B.VBELN
WHERE B.UEPOS = '000000'
AND A.AUART IN ('ZDR','ZRD','ZCR','ZDR1') )JHD LEFT JOIN
(
SELECT B.VGBEL,B.VGPOS,
COUNT(*) FKPCS,
SUM(CASE WHEN TRIM(A.SFAKN)IS NOT NULL THEN -1*B.FKIMG ELSE B.FKIMG END) FKIMG,
SUM(CASE WHEN A.RFBSK<>'C' THEN 0 ELSE (CASE WHEN TRIM(A.SFAKN)IS NOT NULL THEN -1*B.WAVWR ELSE B.WAVWR END)END) WAVWR,
MAX(LFGJA)LFGJA,
MAX(LFMON)LFMON FROM (
SELECT SUBSTR(FKDAT,1,4) LFGJA,SUBSTR(FKDAT,5,2) LFMON,VBELN,MANDT,SFAKN,RFBSK FROM SAPSR3.VBRK) A
LEFT JOIN
SAPSR3.VBRP B ON A.MANDT = B.MANDT AND A.VBELN = B.VBELN
WHERE A.MANDT='800'GROUP BY B.VGBEL,B.VGPOS
)KPD
ON KPD.VGBEL = JHD.VBELN AND KPD.VGPOS = JHD.POSNR
LEFT JOIN WLB
ON JHD.MATNR = WLB.MATNR AND JHD.WERKS = WLB.BWKEY AND JHD.JLFGJA = WLB.LFGJA AND JHD.JLFMON = WLB.LFMON
AND (JHD.KNTTP <> 'M' OR (WLB.VBELN = JHD.MAT_KDAUF AND WLB.POSNR = JHD.MAT_KDPOS))
),T AS(
SELECT VBELN,POSNR,MIN(VKORG) VKORG,MIN(KUNNR) KUNNR,MIN(KUNAG) KUNAG,
MIN(JLFGJA) JLFGJA,MIN(JLFMON) JLFMON,MIN(WADAT_IST) WADAT_IST,MIN(MATNR) MATNR,
MIN(ARKTX) ARKTX,MIN(WERKS) WERKS,MIN(VRKME) VRKME,MIN(NETWR) NETWR,MIN(CK_VGBEL) CK_VGBEL,
MIN(CK_VGPOS) CK_VGPOS,MIN(PSTYV) PSTYV,MIN(BWART) BWART,MIN(SHKZG) SHKZG,MIN(KNTTP) KNTTP,
MIN(MAT_KDAUF) MAT_KDAUF,MIN(MAT_KDPOS) MAT_KDPOS,
MIN(WLFGJA)WLFGJA,MIN(WLFMON)WLFMON,MIN(STPRS)STPRS,MIN(VERPR)VERPR,MIN(PEINH)PEINH,
MIN(WLBZDJ)WLBZDJ,MIN(WLSJDJ)WLSJDJ,MIN(TVBELN)TVBELN,MIN(TPOSNR)TPOSNR,
LAG(QMBZDJ,1,(CASE WHEN LFIMG <> 0 THEN NETWR/LFIMG ELSE 0 END)) OVER(PARTITION BY VBELN ORDER BY POSNR) AS QCBZJG,
LAG(QMSJDJ,1,(CASE WHEN LFIMG <> 0 THEN NETWR/LFIMG ELSE 0 END)) OVER(PARTITION BY VBELN ORDER BY POSNR) AS QCSJJG,
QMBZDJ,QMSJDJ,
MIN(FHBZCB)FHBZCB,
MIN(FHSJCB)FHSJCB,
MIN(FHCY)FHCY,
MIN(VGBEL)VGBEL,MIN(VGPOS)VGPOS,MIN(LFGJA)LFGJA,MIN(LFMON)LFMON,MIN(WAVWR)WAVWR,
MIN(KPBZCB)KPBZCB,
MIN(KPSJCB)KPSJCB,
MIN(KPBZCY)KPBZCY,
MIN(KPSJCY)KPSJCY,
MIN(FKPCS) FKPCS,
LFIMG,FKIMG,
sum(LFIMG) over (partition by VBELN order by POSNR rows between unbounded preceding and current row)
-
sum(FKIMG) over (partition by VBELN order by POSNR rows between unbounded preceding and current row) QMSL
FROM JHB GROUP BY VBELN,POSNR,LFIMG,FKIMG,QMBZDJ,QMSJDJ,NETWR)SELECT T.VBELN,T.POSNR,T.VKORG,T.JLFGJA,T.JLFMON,T.MATNR,
T.ARKTX,T.WERKS,T.KNTTP,T.FKPCS,T.PSTYV,
T.QCBZJG,T.QCSJJG,T.LFIMG,T.FHBZCB,T.FHSJCB,T.FHCY,
T.FKIMG,T.KPBZCB,T.KPSJCB,T.WAVWR,T.KPBZCY,T.KPSJCY,T.LFGJA,T.LFMON,
T.QMSL,T.QMBZDJ,T.QMSJDJ
FROM T