Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не идет запрос  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Имеется запрос:
SELECT N.[ID],FIN.[SUM_ALL] 
FROM [T_FCP_MEROPR_NAPRAV] N 
LEFT JOIN (SELECT S.[ID_NAPRAV],ROUND(SUM(S.[SUM_ALL])*0.001,1) as [SUM_ALL] 
           FROM ( SELECT CAST(LEFT([KOD_FCP],PATINDEX('%/%',[KOD_FCP])-1) as int) as [ID_NAPRAV] 
                        ,ISNULL([SUM_FB],0)+ISNULL([SUM_RB],0)+ISNULL([SUM_MB],0)+ISNULL([SUM_VBI],0) as [SUM_ALL] 
                  FROM [T_RCP_PLAN_DATA] 
                  WHERE [ID_REG] = 14 and [KOD_FCP] is not null 
                ) S 
           GROUP BY S.[ID_NAPRAV] 
          ) FIN 
ON N.[ID] = FIN.[ID_NAPRAV] 
ORDER BY N.[ID]
У меня
SELECT @@VERSION
Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)   Nov 24 2008 13:01:59   Copyright (c) 1988-2005 Microsoft Corporation  Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2) 
Этот запрос выполняется
У заказчика:
SELECT @@VERSION
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)   Oct 14 2005 00:33:37   Copyright (c) 1988-2005 Microsoft Corporation  Standard Edition on Windows NT 5.1 (Build 2600: Service Pack 3) 
Выдает ошибку:
Сообщение 536, уровень 16, состояние 5, строка 1
Недопустимый параметр длины передан функции SUBSTRING.
У заказчика наверное надо поставить SP ?
30 июн 11, 17:02    [10901662]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Наверное, вам надо отладить ваш запрос на данных заказчика. Но и SP тоже накатить надо.
30 июн 11, 17:04    [10901676]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
select left('aaaa', 0-1)
Вычисление выражения
CAST(LEFT([KOD_FCP],PATINDEX('%/%',[KOD_FCP])-1) as int)
во вложенном запросе может идти как с уже примененым фильтром WHERE [ID_REG] = 14 and [KOD_FCP] is not null, так и без него
30 июн 11, 17:08    [10901712]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Т.е. еще один вложенный запрос поставить?
30 июн 11, 17:11    [10901734]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
Владимир СА
Т.е. еще один вложенный запрос поставить?

Это не даст 100% гарантии. Оптимизатор может тасовать вычисления/фильтрации/соединения
30 июн 11, 17:14    [10901757]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Glory
Владимир СА
Т.е. еще один вложенный запрос поставить?

Это не даст 100% гарантии. Оптимизатор может тасовать вычисления/фильтрации/соединения
Да-с, даже этот запрос не идет...
SELECT CAST(LEFT(T.[KOD_FCP],PATINDEX('%/%',T.[KOD_FCP])-1) as int) as [ID_NAPRAV] 
       ,ISNULL(T.[SUM_FB],0)+ISNULL(T.[SUM_RB],0)+ISNULL(T.[SUM_MB],0)+ISNULL(T.[SUM_VBI],0) as [SUM_ALL] 
FROM
(SELECT [KOD_FCP],[SUM_FB],[SUM_RB],[SUM_MB],[SUM_VBI]
   FROM [T_RCP_PLAN_DATA] 
   WHERE [ID_REG] = 14 and [KOD_FCP] is not null
) T
Сообщение 536, уровень 16, состояние 5, строка 1
Недопустимый параметр длины передан функции SUBSTRING.
30 июн 11, 17:20    [10901816]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Решил проблему....
30 июн 11, 18:04    [10902193]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
Gizmor
Member

Откуда:
Сообщений: 54
Добрый день, у меня та же проблема, подскажите как решили...... плз
12 апр 12, 22:08    [12408622]     Ответить | Цитировать Сообщить модератору
 Re: Не идет запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Предлагаю так:
Gizmor
Добрый день, у меня та же проблема, подскажите как решили...... плз
LEFT(T.[KOD_FCP],NULLIF(PATINDEX('%/%',T.[KOD_FCP]),0)-1)
13 апр 12, 11:51    [12410823]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить