Create Table #TmpBillCheckList(
FExplanation varchar(255) default(' ') )
go
insert into #TmpBillCheckList( FExplanation )
select a.FExplanation
from t_rp_newReceiveBill a
inner join t_rp_arbillofsh c on a.FBillID=c.FBillID
join t_rp_contact b on a.FBillID=b.FBillID
left join t_currency cur on a.FCurrencyID=cur.FCurrencyID
left join t_item i on a.FCustomer=i.FItemID
left join t_item ii on a.FDepartment=ii.FItemID
left join t_item iii on a.FEmployee=iii.FItemID
left join t_user s on a.FPreParer=s.FUserID
left join t_user t on a.FChecker=t.FUserID
Left join t_settle x1 on a.FSettle=x1.FItemID
Left join t_rp_systemenum x2 on a.FBillType=x2.FItemID
Left join (select v1.FVoucherID,v1.FNumber,v2.Fname FName from t_voucher v1
inner join t_vouchergroup v2 on v1.FGroupid=v2.fgroupid)v on b.FVoucherID=v.FVoucherID
where 1=1 and (c.FID_SRC=https://bbs.csdn.net/topics/0 or c.FClassID_SRC not in (1000000,1000002,1000003,1000004,1000005,1000014,1000021,1000022,1000500,1000501,1000502,1000503,1000520,1000521,1007140,1000016,1000018,1000511,1000510)) and a.FRp=1 and a.FPre in(0,-1)
and b.FType not in(8,9) and a.FCheckStatus<>1
and a.FItemClassID in (1)
and (b.FStatus & 1)=1
and (b.FStatus & 16)=0
and i.FNumber>='01.BTC125'
and i.FNumber<='01.BTC125'
and a.FCurrencyID=1000
go
drop table #TmpBillCheckList
sql 代碼如上
問題是當前執行報如題錯誤,
如果洗掉一行left join 對查詢資料結果沒有影響,執行就不會報錯了
uj5u.com熱心網友回復:
你按下面查一下, 看實際超過 255 長度的那些資料到底是什么?--1.
CREATE TABLE #TmpBillCheckList(FExplanation VARCHAR(MAX) DEFAULT(' '))
--2
INSERT INTO #TmpBillCheckList(FExplanation)
SELECT a.FExplanation
FROM t_rp_newReceiveBill a
INNER JOIN t_rp_arbillofsh c
ON a.FBillID = c.FBillID
JOIN t_rp_contact b
ON a.FBillID = b.FBillID
LEFT JOIN t_currency cur
ON a.FCurrencyID = cur.FCurrencyID
LEFT JOIN t_item i
ON a.FCustomer = i.FItemID
LEFT JOIN t_item ii
ON a.FDepartment = ii.FItemID
LEFT JOIN t_item iii
ON a.FEmployee = iii.FItemID
LEFT JOIN t_user s
ON a.FPreParer = s.FUserID
LEFT JOIN t_user t
ON a.FChecker = t.FUserID
LEFT JOIN t_settle x1
ON a.FSettle = x1.FItemID
LEFT JOIN t_rp_systemenum x2
ON a.FBillType = x2.FItemID
LEFT JOIN (
SELECT v1.FVoucherID,
v1.FNumber,
v2.Fname FName
FROM t_voucher v1
INNER JOIN t_vouchergroup v2
ON v1.FGroupid = v2.fgroupid
)v
ON b.FVoucherID = v.FVoucherID
WHERE 1 = 1
AND (
c.FID_SRC = 0
OR c.FClassID_SRC NOT IN (1000000, 1000002, 1000003, 1000004,
1000005, 1000014, 1000021, 1000022,
1000500, 1000501, 1000502, 1000503,
1000520, 1000521, 1007140, 1000016,
1000018, 1000511, 1000510)
)
AND a.FRp = 1
AND a.FPre IN (0, -1)
AND b.FType NOT IN (8, 9)
AND a.FCheckStatus <> 1
AND a.FItemClassID IN (1)
AND (b.FStatus & 1) = 1
AND (b.FStatus & 16) = 0
AND i.FNumber >= '01.BTC125'
AND i.FNumber <= '01.BTC125'
AND a.FCurrencyID = 1000
--3
SELECT len(FExplanation) AS theLen,FExplanation
FROM #TmpBillCheckList WHERE len(FExplanation)>255
ORDER BY len(FExplanation) DESC
--4
DROP TABLE #TmpBillCheckList
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/43065.html
標籤:疑難問題
上一篇:卸載失敗是為什么?
下一篇:求幫看看sql陳述句!
