Запрос содержащий подзапросы не работает

ZWizard
Дата: 26.02.2010 14:03:59
Добрый день господа!
Столкнулся с проблемкой, раньше запрос отрабатывал верно, с недавних пор перестал, ниже сам запрос и ошибка:

Запрос:

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 их не видел или что могло повлиять на то, что запрос перестал отрабатывать ?

ЗЫ: На аналогичной базе этот запрос работает
Glory
Дата: 26.02.2010 14:06:03
SQL: Microsoft SQL Server 2005 - 9.00.1399.06 Oct 14 2005 00:35:21
Патчить надо сервера, а не работать на оригинальной версии
ZWizard
Дата: 26.02.2010 14:08:39
Ми пардон, а можно поточнее, не совсем понял ап чем речь
Glory
Дата: 26.02.2010 14:09:58
ZWizard
Ми пардон, а можно поточнее, не совсем понял ап чем речь

Речь о том, что вы работаете на версии сервера выпущенной в 2005году. И не установили ни одногь патча и сервис пака
ZWizard
Дата: 26.02.2010 14:12:50
Пач это хорошо, сообщу админам.
А с чем вообще может быть связана проблема? В течении года этот запрос отлично отрабатывал, возможна ли проблема с данными в таблицах к которым обращается запрос?
iap
Дата: 26.02.2010 14:51:50
SELECT * FROM QUT1 WHERE quantity=0
что вернёт?

Мне вот всегда было интересно, зачем люди пишут в одном запросе (в одном модуле, одной процедуре, функции, ...)
имя одного и того же объекта буквами разного регистра? Это что, стиль жизни такой? Всё делать кое-как?
В данном случае это я про алиас q1. Все глаза сломал!

В общем, лихо Вы на q1.quantity делите, лихо!
ZWizard
Дата: 26.02.2010 15:11:00
iap
SELECT * FROM QUT1 WHERE quantity=0
что вернёт?

Мне вот всегда было интересно, зачем люди пишут в одном запросе (в одном модуле, одной процедуре, функции, ...)
имя одного и того же объекта буквами разного регистра? Это что, стиль жизни такой? Всё делать кое-как?
В данном случае это я про алиас q1. Все глаза сломал!

В общем, лихо Вы на q1.quantity делите, лихо!


Ничего не вернул, если вы про деление на Ноль, оно не возможно, сама система(SAP) не позволяет вводить нулевые количества(в данной таблице содержится количества продаваемого товара), поэтому запрос достаточно грамотно составлен для той задачи которую выполняет.
Если оффтопить, то для меня никаких эмоций не вызывает разный регистр, привык видимо, человек писавший этот запрос(возможно не один) видимо видел(и) в этом смысл.