[SQL ] inner join 太多表,跑出錯誤訊息

看板Database作者 (snick)時間15年前 (2010/04/02 00:35), 編輯推噓3(301)
留言4則, 4人參與, 最新討論串1/1
大家好 我用的是MS-SQL,現在遇到資料筆數過多, 還有每個表都僅需幾個欄位而去join 整張表 試了二個版本,都有錯誤訊息如下: ========= 第一個版本 ======== Microsoft OLE DB Provider for SQL Server 錯誤 '80004005' 子查詢傳回不只 1 個值。這種狀況在子查詢之後有 =、!=、<、<=、>、>= 或是子查詢作為運算式使用時是不允許的。 select fh.BEGIN_DATE, fh.FORM_NO, fh.FORM_STATUS, hm.hnduser,hm.prbu, emp.EMP_NAME, hm.rqtrsn, dm.prdseq, dm.prddsc, dm.prdspec, dm.qtyor, dm.umord, vm.prvseq, vm.vndnam, vm.paydesc, ld.idcury, ld.vunit, ld.qunit, ld.bunit, ld.result, (select ordno from ippodm where ippodm.fprno = dm.prdprno and ippodm.fprseq = dm.prdseq) as pono from FM_FORM_HEADER fh inner join ipprhm hm on fh.FORM_NO = hm.prhno inner join AM_EMPLOYEE emp on hm.prreq = emp.LOGIN_NAME inner join ipprdm dm on hm.prhno = dm.prdprno inner join ipprvm vm on dm.prdprno = vm.prvno inner join iprld ld on dm.prdprno = ld.idno and dm.prdseq = ld.idseq and vm.prvno = ld.idno and vm.prvseq = ld.idvenseq where (fh.FORM_KIND = 'BQY.FORM.T057') and (fh.FORM_STATUS in ('WA', 'UA', 'AP')) 我測試過子查詢ordno會有很多筆資料,所以將子查詢修改成用inner join =========== 第二個版本 =========== 回應物件 錯誤 'ASP 0251 : 80004005' 超出回應緩衝區限制 執行 ASP 頁導致回應緩衝區超出其設定限制。 SELECT fh.BEGIN_DATE, fh.FORM_NO, fh.FORM_STATUS, hm.hnduser, hm.prbu, emp.EMP_NAME, hm.rqtrsn, dm.prdseq, dm.prddsc, dm.prdspec, dm.qtyor, dm.umord, vm.prvseq, vm.vndnam, vm.paydesc, ld.idcury, ld.vunit,ld.qunit, ld.bunit, ld.result, odm.ordno AS pono 改了這邊 ^^^^^^^^^^^^^^^^^ FROM FM_FORM_HEADER AS fh INNER JOIN ipprhm AS hm ON fh.FORM_NO = hm.prhno INNER JOIN AM_EMPLOYEE AS emp ON hm.prreq = emp.LOGIN_NAME INNER JOIN ipprdm AS dm ON hm.prhno = dm.prdprno 新增這行 INNER JOIN ippodm AS odm ON dm.prdprno = odm.fprno INNER JOIN ipprvm AS vm ON dm.prdprno = vm.prvno INNER JOIN iprld AS ld ON dm.prdprno = ld.idno AND dm.prdseq = ld.idseq AND vm.prvno = ld.idno AND vm.prvseq = ld.idvenseq AND dm.prdseq = odm.fprseq ^^^^^^^^^^^^^^^^^^^^^^ 還有這邊 WHERE (fh.FORM_KIND = 'BQY.FORM.T057') AND (fh.FORM_STATUS IN ('WA', 'UA', 'AP')) " 這個結果讓我去google了一下,蠻多都說要改buffer的大小, 我也照著去找c:裡的檔案,下了指令去擴充了,可是結果一樣 冏 請問各位前輩們,能有什麼辦法讓他跑出我會很開心的結果呢??? 先謝謝大家了~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.173.195

04/02 18:11, , 1F
後面那個看起來是網頁的問題?
04/02 18:11, 1F

04/05 17:35, , 2F
同樓上 第二個可能是ASP取資料的時候 忘記MoveNext了= =
04/05 17:35, 2F

04/06 23:30, , 3F
請問第一個解法有救嗎?
04/06 23:30, 3F

04/12 01:35, , 4F
在 pono 那個 subquery 加上 top 1 試試.
04/12 01:35, 4F
文章代碼(AID): #1BjCjVO9 (Database)