- 论坛徽章:
- 0
|
SQL语句如下:
INSERT INTO TEMP_CON_CHECK_01
SELECT WMMCU,
'IM',
WMDOCO,
WMCPIT,
WMCPIL,
ILDCT,
WMUORG / 10000,
-WMTRQT / 10000,
SUM(CASE
WHEN WMUM = ILTRUM THEN
ILTRQT / 10000
ELSE
ILTRQT / 10000 * GETUMCONV('PD810', ILITM, ILTRUM, WMUM)
END),
0
FROM PRODDTA.F4801
JOIN PRODDTA.F3111 ON WADOCO = WMDOCO
LEFT JOIN PRODDTA.F4111 ON WMDOCO = ILDOC
AND ILDCT = 'IM'
AND ILLNID = WMCPNB * 10
WHERE WMUPMJ BETWEEN 108001 AND 108365
AND WASRST <= '96'
GROUP BY WMMCU,
WMDCTO,
WMDOCO,
WMCPIT,
WMCPIL,
ILDCT,
WMUORG,
WMTRQT,
WMCPNB
HAVING - WMTRQT / 10000 <> SUM(NVL(CASE WHEN WMUM = ILTRUM THEN ILTRQT / 10000 ELSE ILTRQT / 10000 * GETUMCONV('PD810', ILITM, ILTRUM, WMUM) END, 0));
三个表的记录数如下:
F4801(1170917)
F3111(7833351)
F4111(12761866)
另外想问一下,采用join的方式和使用from A, B where的方式在Oracle里面有区别吗? Oracle优化器是否对这两种不同的表链接方式有着不同的处理方式。
多谢各位的帮忙!
[ 本帖最后由 yslaoniu 于 2008-8-24 08:59 编辑 ] |
-
1.GIF
(19.5 KB, 下载次数: 35)
-
2.GIF
(183.36 KB, 下载次数: 46)
|