Уважаемый berezdetsky, пролейте свет на следующую ситуацию:
имеем запрос:
ТекстЗапроса = "
|SELECT
| $Бюджеты.Период [Период $Справочник.ПериодыБюджетов]
| , $Бюджеты.Статья [Статья $Справочник.СтатьиБюджетов]
| , $Бюджеты.ОбъектСтроительства [Объект $Справочник.ОбъектыСтроительства]
| , $Бюджеты.Подразделение [Подразделение $Справочник.Подразделения]
| , $Бюджеты.План План
| , $Бюджеты.Факт Факт
|FROM
| $Регистр.Бюджеты AS Бюджеты
| JOIN $Справочник.СтатьиБюджетов as спр_статьи (nolock) on спр_статьи.id = $Бюджеты.Статья
|TOTALS
| Sum(План)
| , Sum(Факт)
|BY ALL
| , [Период $Справочник.ПериодыБюджетов]
| , [Статья $Справочник.СтатьиБюджетов] HIERARCHY
| , [Объект $Справочник.ОбъектыСтроительства] HIERARCHY
| , [Подразделение $Справочник.Подразделения] HIERARCHY
|";
на его основании замечательно строится куб и все работает как и ожидается.
А вот тот же запрос с небольшим дополнением:
ТекстЗапроса = "
|SELECT
| $Бюджеты.Период [Период $Справочник.ПериодыБюджетов]
| , $Бюджеты.Статья [Статья $Справочник.СтатьиБюджетов]
| , $Бюджеты.ОбъектСтроительства [Объект $Справочник.ОбъектыСтроительства]
| , $Бюджеты.Подразделение [Подразделение $Справочник.Подразделения]
| , CASE WHEN $спр_статьи.ЭтоДоходнаяСтатья = 1 THEN $Бюджеты.План ELSE -$Бюджеты.План END План
| , CASE WHEN $спр_статьи.ЭтоДоходнаяСтатья = 1 THEN $Бюджеты.Факт ELSE -$Бюджеты.Факт END Факт
|FROM
| $Регистр.Бюджеты AS Бюджеты
| JOIN $Справочник.СтатьиБюджетов as спр_статьи (nolock) on спр_статьи.id = $Бюджеты.Статья
|TOTALS
| Sum(План)
| , Sum(Факт)
|BY ALL
| , [Период $Справочник.ПериодыБюджетов]
| , [Статья $Справочник.СтатьиБюджетов] HIERARCHY
| , [Объект $Справочник.ОбъектыСтроительства] HIERARCHY
| , [Подразделение $Справочник.Подразделения] HIERARCHY
|";
при построении куба на его основании выдает такую вот ошибку:
Цитата:qryConsole : if exists(select * from tempdb..sysobjects where id = object_id('tempdb..##qryConsole_51_3'))
drop table
Я так понимаю что есть какая-то ошибка, возможно синтаксическая ...
посмотрел синтаксис оператора CASE:
Цитата:Searched CASE expression:
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
как я понимаю, написал правильно (да и в моих не OLAP запросах такая конструкция отрабатывает всегда....
Очень прошу помощи!!!