INSERT INTO SJ_TPICKUP_20070622
SELECT A.FJOBID,MIN(A.FLSTUPDTIME),
SUBSTR(B.FBIN,1,4)||'-'||(case when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (1,2,3,4) then '前'
when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (5,6,7,8,9,10,11,12) then '后'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (1,2,3,4,5,6,7,8) then '前'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (9,10,11,12) then '后'
end ),
COUNT(B.FARTICLE),SUM(B.FQTY),SUM(B.FQTY*C.FPRICE)
FROM TPICKUP A,TPICKUPDTL B,TARTICLE C
WHERE A.NUM = B.NUM
AND B.FARTICLE = C.FGID
AND A.FPICKAREA = 20
AND A.FJOBID >= TO_CHAR(aFILDATE,'YYMMDD')
AND A.FJOBID <= TO_CHAR(bFILDATE,'YYMMDD')
--AND A.FLSTUPDTIME >= aFILDATE
--AND A.FLSTUPDTIME <= bFILDATE
GROUP BY A.FJOBID,SUBSTR(B.FBIN,1,4)||'-'||(case when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (1,2,3,4) then '前'
when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (5,6,7,8,9,10,11,12) then '后'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (1,2,3,4,5,6,7,8) then '前'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (9,10,11,12) then '后'
end );
INSERT INTO SJ_TPICKUP_20070622
SELECT A.FJOBID,MIN(A.FLSTUPDTIME),SUBSTR(B.FBIN,1,4),COUNT(B.FARTICLE),SUM(B.FQTY),SUM(B.FQTY*C.FPRICE)
FROM TPICKUP A,TPICKUPDTL B,TARTICLE C
WHERE A.NUM = B.NUM
AND B.FARTICLE = C.FGID
AND A.FPICKAREA = 20
AND A.FJOBID >= TO_CHAR(aFILDATE,'YYMMDD')
AND A.FJOBID <= TO_CHAR(bFILDATE,'YYMMDD')
--AND A.FLSTUPDTIME >= aFILDATE
--AND A.FLSTUPDTIME <= bFILDATE
GROUP BY A.FJOBID,SUBSTR(B.FBIN,1,4);查询出来的结果COUNT(B.FARTICLE),SUM(B.FQTY),是相同,但SUM(B.FQTY*C.FPRICE)这个的结果就不相同,
望高手指点一下哪里有问题
SELECT A.FJOBID,MIN(A.FLSTUPDTIME),
SUBSTR(B.FBIN,1,4)||'-'||(case when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (1,2,3,4) then '前'
when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (5,6,7,8,9,10,11,12) then '后'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (1,2,3,4,5,6,7,8) then '前'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (9,10,11,12) then '后'
end ),
COUNT(B.FARTICLE),SUM(B.FQTY),SUM(B.FQTY*C.FPRICE)
FROM TPICKUP A,TPICKUPDTL B,TARTICLE C
WHERE A.NUM = B.NUM
AND B.FARTICLE = C.FGID
AND A.FPICKAREA = 20
AND A.FJOBID >= TO_CHAR(aFILDATE,'YYMMDD')
AND A.FJOBID <= TO_CHAR(bFILDATE,'YYMMDD')
--AND A.FLSTUPDTIME >= aFILDATE
--AND A.FLSTUPDTIME <= bFILDATE
GROUP BY A.FJOBID,SUBSTR(B.FBIN,1,4)||'-'||(case when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (1,2,3,4) then '前'
when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (5,6,7,8,9,10,11,12) then '后'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (1,2,3,4,5,6,7,8) then '前'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (9,10,11,12) then '后'
end );
INSERT INTO SJ_TPICKUP_20070622
SELECT A.FJOBID,MIN(A.FLSTUPDTIME),SUBSTR(B.FBIN,1,4),COUNT(B.FARTICLE),SUM(B.FQTY),SUM(B.FQTY*C.FPRICE)
FROM TPICKUP A,TPICKUPDTL B,TARTICLE C
WHERE A.NUM = B.NUM
AND B.FARTICLE = C.FGID
AND A.FPICKAREA = 20
AND A.FJOBID >= TO_CHAR(aFILDATE,'YYMMDD')
AND A.FJOBID <= TO_CHAR(bFILDATE,'YYMMDD')
--AND A.FLSTUPDTIME >= aFILDATE
--AND A.FLSTUPDTIME <= bFILDATE
GROUP BY A.FJOBID,SUBSTR(B.FBIN,1,4);查询出来的结果COUNT(B.FARTICLE),SUM(B.FQTY),是相同,但SUM(B.FQTY*C.FPRICE)这个的结果就不相同,
望高手指点一下哪里有问题
解决方案 »
- oracle 数据库查询
- ORACEL 语句 消耗资源
- Oracle 10g数据库是否已经提交
- sqlserver2000 移植到 Oracle9i 自增列问题
- 如何使用触发器修改插入的新值???
- 请问在8i中的日期时间格式是什么样的?我的这个SQL执行后提示格式字符串不匹配。
- CONNECT BY 超难问题!在线等....高手请进!
- 请教,为什么数据库登陆慢?
- 怎么把纵表用视图的形式转换成横表?
- ORA-01034: ORACLE not available 怎样解决
- 百分求把这个T-SQL存储过程改成PL-SQL的存储过程
- Oracle Developer Tools for Visual Studio .NET 怎样才算规范安装?
你group by 是不同的,主要就在于SUBSTR(B.FBIN,1,4);
第一句是 SUBSTR(B.FBIN,1,4) ¦ ¦'-' ¦ ¦(case when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (1,2,3,4) then '前'
when (substr(fbin,4,1)) in (1,3,5,7,9) and (substr(fbin,5,2)) in (5,6,7,8,9,10,11,12) then '后'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (1,2,3,4,5,6,7,8) then '前'
when (substr(fbin,3,2)) in (2,4,6,8,10) and (substr(fbin,5,2)) in (9,10,11,12) then '后'
end );
tpickup
NUM VARCHAR2(14) N
FJOBID VARCHAR2(10) N
FLSTUPDTIME DATE N sysdate
FCREATETIME DATE N sysdate
FORDER VARCHAR2(20) N
FSTORE VARCHAR2(8) N
FPICKER INTEGER Y
FPATH VARCHAR2(4) Y
FPICKAREA VARCHAR2(4) N
FARTICLENUMBER INTEGER N
FARTICLECOUNTSTR VARCHAR2(15) N
STAT INTEGER N
FCATEGORY VARCHAR2(10) N
FOK INTEGER N 0
FPRINTTIME DATE Y
FFILLER INTEGER Y
FSHIPED INTEGER N 0
FMEMO VARCHAR2(255) Y
FTOTAL NUMBER(24,2) Y 0
FCHESTS NUMBER(24,4) N 0
FREALCHESTS NUMBER(24,4) N 0
FSNDTIME DATE Y
FPICKMETHOD VARCHAR2(20) N '手工单据'
FENTIRES NUMBER(24,4) N 0
FCOLLECTBIN VARCHAR2(8) Y
FCROSSNUM VARCHAR2(14) Y
FCROSSORDER VARCHAR2(20) Y
FAUDITENTIRES NUMBER(24,4) N 0
FAUDITCHESTS NUMBER(24,4) N 0
FAUDITED INTEGER N 0
FAUDITOPER INTEGER Y
FVOL NUMBER(24,3) N 0
FTALLYPRNTIME DATE Y
FORDSHIP VARCHAR2(14) Y
FSTORAGE VARCHAR2(20) Y
FCLIENTTYPE VARCHAR2(10) N '便利'
FPRERPL INTEGER N 0
FLOGIXEXGTIME DATE Y
NUM VARCHAR2(14) N
LINE INTEGER N
FBIN VARCHAR2(8) N
FARTICLE INTEGER N
FLOT VARCHAR2(14) N '-'
FEXPIRACY DATE Y
FMUNIT VARCHAR2(6) N
FQPCSTR VARCHAR2(15) N
FQTYSTR VARCHAR2(15) N
FQPC NUMBER(24,4) N
FQTY NUMBER(24,4) N
FREALQTYSTR VARCHAR2(15) N '0'
FREALQTY NUMBER(24,4) N 0
FSTKINNUM VARCHAR2(14) Y '-'
FHAS2 INTEGER N 0
FALCNTC VARCHAR2(14) N
FALCNTCLINE INTEGER N
FWEIGHT NUMBER(24,3) N 0
FCHESTNUM VARCHAR2(20) Y
FLOCK INTEGER N 0
FCROSSLINE INTEGER Y
FSHIPED NUMBER(24,2) N 0
FVOL NUMBER(24,3) N 0
FVENDOR INTEGER Y
FPICKER INTEGER Y
FPICKTIME DATE Y
FOWNER INTEGER Y
FWRHCARD VARCHAR2(14) Y
FINAMOUNT NUMBER(24,4) Y
FOUTAMOUNT NUMBER(24,4) Y
FCHKQTY NUMBER(24,4) Y
FPALLETCODE VARCHAR2(10) Y
FDATERECEIVED DATE Y