作者jkimo (调整作息)
看板Database
标题[SQL ] 请问语法问题
时间Sat Aug 23 11:39:19 2008
我有一段语法,举例如下
SELECT SUPNO.SUP_NO,SUPNO.NAM,PRDNO01.PRD_NO,PRDNO01.WHR
FROM PRDNO
LEFT OUTER JOIN SUPNO ON SUPNO.SUP_NO = CUSNO.SUP_NO
LEFT OUTER JOIN PRDNO01 ON PRDNO01.PRD_NO = PRDNO.PRD_NO
<查询出约4,000笔资料>
然後去跑 While 回圈
他每一笔资料还可以设定去找最近产品的售出日期
<SALNO01及SALNO02都为多笔细项纪录,同样的产品及库位因出售单位不同会连续出现>
[WHERE 的" "为代入的查询资料]
SELECT SALNO.DAT
FROM SALNO
LEFT OUTER JOIN SALNO01 ON SALNO01.SAL_NO = SALNO.SAL_NO
LEFT OUTER JOIN SALNO02 ON SALNO02.SAL_NO = SALNO.SAL_NO
WHERE ((SALNO01.PRD_NO = "PRDNO01.PRD_NO") AND
(SALNO01.WHR = "PRDNO01.WHR")) OR
((SALNO02.PRD_NO = "PRDNO01.PRD_NO") AND
(SALNO02.WHR = "PRDNO01.WHR"))
ORDER BY SALNO.DAT DESC
但这个语法查询时,会有一万笔的资料
四千笔每次都要去查那一万笔
造成整个速度上的拖累
第二段SQL语法改写後成
SELECT MAX(SALNO.DAT)
FROM SALNO
LEFT OUTER JOIN SALNO01 ON SALNO01.SAL_NO = SALNO.SAL_NO
LEFT OUTER JOIN SALNO02 ON SALNO02.SAL_NO = SALNO.SAL_NO
WHERE ((SALNO01.PRD_NO = "PRDNO01.PRD_NO") AND
(SALNO01.WHR = "PRDNO01.WHR")) OR
((SALNO02.PRD_NO = "PRDNO01.PRD_NO") AND
(SALNO02.WHR = "PRDNO01.WHR"))
我想了好久…一直想不出来怎麽把第三个及第一个这两个语法合成一个
朋友叫我试试 UNION
我连怎麽U起来又不多出那四千笔资料的方法也还没想到
有人可以提示或解说个方向吗?
谢谢
※ 编辑: jkimo 来自: 118.171.91.144 (08/23 11:49)