我自己在Report Builder6.0里面做报表写的SQL语句SELECT
A.ORDSEQ, A.ORDNO, A.CTRPTY,
B.ITMNO, B.PRD, B.UNIT,
C.CLNO, C.CL,
D.SZNO, D.SZ,
E.SHPNO, E.CRCY,
F.QTY,
R0.STGNO, R0.QTY STGQTY, R0.QTY/F.QTY*100 PERCENT,
R1.BLSEQ,
R2.BLNO, R2.REGDT,
R4.CUSTPRC, R0.QTY*R4.CUSTPRC AMT,
R5.BLNO SMDNBLNO
FROM ORD A, ORDITM B, ORDITMCL C, ORDITMSZ D, ORDSHP E, ORDITMDTL F,
STGITMDTL R0, BLPCK R1, BL R2, BLDTL R4, BL R5
WHERE A.ORDSEQ=B.ORDSEQ
AND A.ORDSEQ=C.ORDSEQ
AND A.ORDSEQ=D.ORDSEQ
AND A.ORDSEQ=E.ORDSEQ
AND A.ORDSEQ=F.ORDSEQ
AND A.ORDSEQ=R0.ORDSEQ(+)
AND A.ORDSEQ=R4.ORDSEQ(+)
AND B.ITMNO=C.ITMNO
AND B.ITMNO=D.ITMNO
AND B.ITMNO=F.ITMNO
AND B.ITMNO=R0.ITMNO
AND B.ITMNO=R4.ITMNO
AND C.CLNO=F.CLNO
AND C.CLNO=R0.CLNO
AND D.SZNO=F.SZNO
AND D.SZNO=R0.SZNO
AND E.SHPNO=F.SHPNO
AND E.SHPNO=R4.SHPNO
AND R0.STGNO=R1.STGNO(+)
AND R1.BLSEQ=R2.BLSEQ(+)
AND R4.BLSEQ=R5.BLSEQ(+)
AND A.ORDNO='SP10-1782'应为不会用Report Builder,就把语句放在vs2008里面执行,vs把原来的sql编译成SELECT A.ORDSEQ, A.ORDNO, A.CTRPTY, B.ITMNO, B.PRD, B.UNIT, C.CLNO, C.CL, D.SZNO, D.SZ, E.SHPNO, E.CRCY, F.QTY, R0.STGNO, R0.QTY AS STGQTY,
R0.QTY / F.QTY * 100 AS PERCENT, R1.BLSEQ, R2.BLNO, R2.REGDT, R4.CUSTPRC, R0.QTY * R4.CUSTPRC AS AMT, R5.BLNO AS SMDNBLNO
FROM DBOWN.ORD A INNER JOIN
DBOWN.ORDITM B ON A.ORDSEQ = B.ORDSEQ INNER JOIN
DBOWN.ORDITMCL C ON A.ORDSEQ = C.ORDSEQ AND B.ITMNO = C.ITMNO INNER JOIN
DBOWN.ORDITMSZ D ON A.ORDSEQ = D.ORDSEQ AND B.ITMNO = D.ITMNO INNER JOIN
DBOWN.ORDSHP E ON A.ORDSEQ = E.ORDSEQ INNER JOIN
DBOWN.ORDITMDTL F ON A.ORDSEQ = F.ORDSEQ AND B.ITMNO = F.ITMNO AND C.CLNO = F.CLNO AND D.SZNO = F.SZNO AND
E.SHPNO = F.SHPNO LEFT OUTER JOIN
DBOWN.STGITMDTL R0 ON A.ORDSEQ = R0.ORDSEQ AND B.ITMNO = R0.ITMNO AND C.CLNO = R0.CLNO AND D.SZNO = R0.SZNO LEFT OUTER JOIN
DBOWN.BLDTL R4 ON A.ORDSEQ = R4.ORDSEQ AND B.ITMNO = R4.ITMNO AND E.SHPNO = R4.SHPNO LEFT OUTER JOIN
DBOWN.BLPCK R1 ON R0.STGNO = R1.STGNO LEFT OUTER JOIN
DBOWN.BL R2 ON R1.BLSEQ = R2.BLSEQ LEFT OUTER JOIN
DBOWN.BL R5 ON R4.BLSEQ = R5.BLSEQ
WHERE (A.ORDNO = 'SP10-1782')结果上面的在Report Builder里面执行的数据结果就一条数据:
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 2 M 1 HKD 40 45350 1 2.50 216103 SR10-0337 20/5/2010 70 70 SD10S-0255后面的在vs里面执行结果是4条语句:
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 3 L 1 HKD 40 NULL NULL NULL NULL NULL NULL 70 NULL SD10S-0255
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 1 S 1 HKD 30 NULL NULL NULL NULL NULL NULL 70 NULL SD10S-0255
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 2 M 1 HKD 40 45350 1 2.50 216103 SR10-0337 20/5/2010 70 70 SD10S-0255
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 4 XL 1 HKD 10 NULL NULL NULL NULL NULL NULL 70 NULL SD10S-0255
最后我把后面的SQL语句放Report Builder里面执行 ,结果也是4条;
请教下是什么原因造成的???? 哪有相关资料学习下???
A.ORDSEQ, A.ORDNO, A.CTRPTY,
B.ITMNO, B.PRD, B.UNIT,
C.CLNO, C.CL,
D.SZNO, D.SZ,
E.SHPNO, E.CRCY,
F.QTY,
R0.STGNO, R0.QTY STGQTY, R0.QTY/F.QTY*100 PERCENT,
R1.BLSEQ,
R2.BLNO, R2.REGDT,
R4.CUSTPRC, R0.QTY*R4.CUSTPRC AMT,
R5.BLNO SMDNBLNO
FROM ORD A, ORDITM B, ORDITMCL C, ORDITMSZ D, ORDSHP E, ORDITMDTL F,
STGITMDTL R0, BLPCK R1, BL R2, BLDTL R4, BL R5
WHERE A.ORDSEQ=B.ORDSEQ
AND A.ORDSEQ=C.ORDSEQ
AND A.ORDSEQ=D.ORDSEQ
AND A.ORDSEQ=E.ORDSEQ
AND A.ORDSEQ=F.ORDSEQ
AND A.ORDSEQ=R0.ORDSEQ(+)
AND A.ORDSEQ=R4.ORDSEQ(+)
AND B.ITMNO=C.ITMNO
AND B.ITMNO=D.ITMNO
AND B.ITMNO=F.ITMNO
AND B.ITMNO=R0.ITMNO
AND B.ITMNO=R4.ITMNO
AND C.CLNO=F.CLNO
AND C.CLNO=R0.CLNO
AND D.SZNO=F.SZNO
AND D.SZNO=R0.SZNO
AND E.SHPNO=F.SHPNO
AND E.SHPNO=R4.SHPNO
AND R0.STGNO=R1.STGNO(+)
AND R1.BLSEQ=R2.BLSEQ(+)
AND R4.BLSEQ=R5.BLSEQ(+)
AND A.ORDNO='SP10-1782'应为不会用Report Builder,就把语句放在vs2008里面执行,vs把原来的sql编译成SELECT A.ORDSEQ, A.ORDNO, A.CTRPTY, B.ITMNO, B.PRD, B.UNIT, C.CLNO, C.CL, D.SZNO, D.SZ, E.SHPNO, E.CRCY, F.QTY, R0.STGNO, R0.QTY AS STGQTY,
R0.QTY / F.QTY * 100 AS PERCENT, R1.BLSEQ, R2.BLNO, R2.REGDT, R4.CUSTPRC, R0.QTY * R4.CUSTPRC AS AMT, R5.BLNO AS SMDNBLNO
FROM DBOWN.ORD A INNER JOIN
DBOWN.ORDITM B ON A.ORDSEQ = B.ORDSEQ INNER JOIN
DBOWN.ORDITMCL C ON A.ORDSEQ = C.ORDSEQ AND B.ITMNO = C.ITMNO INNER JOIN
DBOWN.ORDITMSZ D ON A.ORDSEQ = D.ORDSEQ AND B.ITMNO = D.ITMNO INNER JOIN
DBOWN.ORDSHP E ON A.ORDSEQ = E.ORDSEQ INNER JOIN
DBOWN.ORDITMDTL F ON A.ORDSEQ = F.ORDSEQ AND B.ITMNO = F.ITMNO AND C.CLNO = F.CLNO AND D.SZNO = F.SZNO AND
E.SHPNO = F.SHPNO LEFT OUTER JOIN
DBOWN.STGITMDTL R0 ON A.ORDSEQ = R0.ORDSEQ AND B.ITMNO = R0.ITMNO AND C.CLNO = R0.CLNO AND D.SZNO = R0.SZNO LEFT OUTER JOIN
DBOWN.BLDTL R4 ON A.ORDSEQ = R4.ORDSEQ AND B.ITMNO = R4.ITMNO AND E.SHPNO = R4.SHPNO LEFT OUTER JOIN
DBOWN.BLPCK R1 ON R0.STGNO = R1.STGNO LEFT OUTER JOIN
DBOWN.BL R2 ON R1.BLSEQ = R2.BLSEQ LEFT OUTER JOIN
DBOWN.BL R5 ON R4.BLSEQ = R5.BLSEQ
WHERE (A.ORDNO = 'SP10-1782')结果上面的在Report Builder里面执行的数据结果就一条数据:
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 2 M 1 HKD 40 45350 1 2.50 216103 SR10-0337 20/5/2010 70 70 SD10S-0255后面的在vs里面执行结果是4条语句:
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 3 L 1 HKD 40 NULL NULL NULL NULL NULL NULL 70 NULL SD10S-0255
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 1 S 1 HKD 30 NULL NULL NULL NULL NULL NULL 70 NULL SD10S-0255
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 2 M 1 HKD 40 45350 1 2.50 216103 SR10-0337 20/5/2010 70 70 SD10S-0255
194798 SP10-1782 L0058 1 S093-02214 PCS 3 152 BROWN 4 XL 1 HKD 10 NULL NULL NULL NULL NULL NULL 70 NULL SD10S-0255
最后我把后面的SQL语句放Report Builder里面执行 ,结果也是4条;
请教下是什么原因造成的???? 哪有相关资料学习下???
解决方案 »
- 高分求助sql server上用的语句转换为oracle语句
- 关于oracle游标循环查询视图中数据再插入的问题
- oracle 10g logminer 为什么只能看当天的日志。
- 触发器的问题
- 请问在建oracle用户时,start-up program是选择/usr/bin/sh 还是/sbin/sh
- 别人说 select * from X 不好,不解。
- pl/sql developer与developer2000的区别是什么?
- 请教,在存储过程中如何把字段值为0替换为1?
- oracle 的又没有左连接和右连接
- 关于ORA-01013的问题,紧急求助!!!!三千兄,救救我啊...
- Win7+Oracle8.1.7客户端+PL/SQL7.0 中文竖排问题如何解决?
- 十万火急、、Oracle、、
应该就是和null 和外连接有关系
就是不知道要怎么写才好了 是什么原因
原来我自己关联的表有问题, SELECT
A.ORDSEQ, A.ORDNO, A.CTRPTY,
B.ITMNO, B.PRD, B.UNIT,
C.CLNO, C.CL,
D.SZNO, D.SZ,
E.SHPNO, E.CRCY,
F.QTY,
R0.STGNO, R0.QTY STGQTY, R0.QTY/F.QTY*100 PERCENT,
R1.BLSEQ,
R2.BLNO, R2.REGDT,
R4.CUSTPRC, R0.QTY*R4.CUSTPRC AMT,
R5.BLNO SMDNBLNO
FROM ORD A, ORDITM B, ORDITMCL C, ORDITMSZ D, ORDSHP E, ORDITMDTL F,
STGITMDTL R0, BLPCK R1, BL R2, BLDTL R4, BL R5
WHERE A.ORDSEQ=B.ORDSEQ
AND A.ORDSEQ=C.ORDSEQ
AND A.ORDSEQ=D.ORDSEQ
AND A.ORDSEQ=E.ORDSEQ
AND A.ORDSEQ=F.ORDSEQ
AND F.ORDSEQ=R0.ORDSEQ(+)
AND A.ORDSEQ=R4.ORDSEQ(+)
AND B.ITMNO=C.ITMNO
AND B.ITMNO=D.ITMNO
AND B.ITMNO=F.ITMNO
AND F.ITMNO=R0.ITMNO(+)
AND B.ITMNO=R4.ITMNO
AND C.CLNO=F.CLNO
AND F.CLNO=R0.CLNO(+)
AND D.SZNO=F.SZNO
AND F.SZNO=R0.SZNO(+)
AND E.SHPNO=F.SHPNO
AND E.SHPNO=R4.SHPNO
AND R0.STGNO=R1.STGNO(+)
AND R1.BLSEQ=R2.BLSEQ(+)
AND R4.BLSEQ=R5.BLSEQ(+)
AND A.ORDNO='SP10-1782';
原来红色的地方都关联的A表订单, 现在改成订单详细,
就能够出来我要的数据了,