[SQL ] 請問語法問題

看板Database (資料庫)作者 (調整作息)時間17年前 (2008/08/23 11:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
我有一段語法,舉例如下 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)
文章代碼(AID): #18huPeoA (Database)
文章代碼(AID): #18huPeoA (Database)