Добрый день господа!
Столкнулся с проблемкой, раньше запрос отрабатывал верно, с недавних пор перестал, ниже сам запрос и ошибка:
Запрос:
SELECT q1.docentry
,q1.visorder
,q1.itemcode
,q1.dscription
,CAST(q1.Quantity/ISNULL((SELECT qq1.quantity FROM qut1 qq1 WHERE qq1.ItemCode = M.ItemCode AND qq1.DocEntry = Q.DocEntry)
,1) AS NVARCHAR)
,r.u_price
,r.lineId
FROM [@SLSL_CNTRHD] C
INNER JOIN [@SLSL_CNTRrw] r ON c.docentry = r.docentry
INNER JOIN OQUT Q ON Q.U_CntrCode = C.DocEntry
INNER JOIN QUT1 Q1 ON Q.DocEntry = Q1.DocEntry
AND r.u_itemcode = q1.itemcode
AND r.u_price>0
INNER JOIN OITM M ON M.ItemCode = Q.U_CodeMash
AND r.u_price = ROUND((q.doctotalfc- q.vatsumfc-(SELECT ISNULL(SUM(t0.totalfrgn) ,0)
FROM QUT1 t0
INNER JOIN OITM t1 ON t1.ItemCode = t0.Itemcode
WHERE t1.ItmsGrpCod NOT IN (111 ,112)
AND t1.Cardcode!= M.CardCode
AND t1.ItmsGrpCod NOT IN (SELECT O1.ItmsGrpCod
FROM OITM O1
WHERE O1.CardCode = M.CardCode)
AND t0.docentry = Q.DocEntry))/q1.quantity
,2)
WHERE C.DocEntry = 3859
ORDER BY r.lineId
Ошибка:
|
Msg 0, Level 11, State 0, Line 0 При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы. Msg 0, Level 20, State 0, Line 0 При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
|
SQL: Microsoft SQL Server 2005 - 9.00.1399.06 (X64) Oct 14 2005 00:35:21 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 (Build 6001: Service Pack 1)
Поправил это дело убрав вложенные запросы и заменив их функциями, все стало работать. Вопрос в следующем, возможно ли каким либо образом отключить вложенные запросы(и как?), что бы SQL их не видел или что могло повлиять на то, что запрос перестал отрабатывать ?
ЗЫ: На аналогичной базе этот запрос работает