|
Запрос в SQL | ☑ | ||
---|---|---|---|---|
0
ХочуСпец
16.09.11
✎
10:32
|
Следующий запрос:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйДвиженияССубконто.Регистратор КАК Документ, | ХозрасчетныйДвиженияССубконто.СчетДт, | ХозрасчетныйДвиженияССубконто.СчетКт, | ХозрасчетныйДвиженияССубконто.Сумма, | ХозрасчетныйДвиженияССубконто.Период КАК Период, | ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоДт1 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1 | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоДт2 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоДт3 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3 | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоКт1 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт2 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоКт2 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт2 | ИНАЧЕ ВЫБОР | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоКт3 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ | КОНЕЦ КАК Договор |ИЗ | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто( | &ДатаНач, | &ДатаКон, | ВидСубконто1 = &ПВХДоговоры | И Субконто1 В (&Договоры), | , | ) КАК ХозрасчетныйДвиженияССубконто | |УПОРЯДОЧИТЬ ПО | Договор, | Период"; Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("ДатаКон", ?(ДатаКон = '00010101', ДатаКон, Новый Граница(КонецДня(ДатаКон), ВидГраницы.Включая))); Запрос.УстановитьПараметр("ПВХДоговоры", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры); Запрос.УстановитьПараметр("Договоры", СЗДоговоры); Результат = Запрос.Выполнить().Выгрузить(); Отлично отрабатывает в файловом варианте, но в SQL вылазит следующая ошибка: "Ошибка СУБД: Microsoft OLE DB provider for SQL Server: Выражения Case могут быть вложенными только до 10 уровня..." Т.е. проблема в "Выбор тогда", но там всего 6 уровней как разрешить проблему? |
|||
1
Ненавижу 1С
гуру
16.09.11
✎
10:34
|
а зачем это
ИНАЧЕ ВЫБОР КОГДА когда можно просто КОГДА без всякой вложенности? |
|||
2
Amiralnar
16.09.11
✎
10:34
|
ВЫРАЗИТЬ(ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Тип)
|
|||
3
Amiralnar
16.09.11
✎
10:35
|
(1) +1
|
|||
4
ХочуСпец
16.09.11
✎
10:36
|
(1) не понимаю как без вложенности то?
|
|||
5
unregistered
16.09.11
✎
10:36
|
| ВЫБОР
| КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоДт1 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1 | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоДт2 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2 | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоДт3 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3 | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоКт1 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1 | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт2 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоКт2 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт2 | КОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 ССЫЛКА Справочник.ДоговорыКонтрагентов | И ХозрасчетныйДвиженияССубконто.СубконтоКт3 <> ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка) | ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3 | КОНЕЦ |
|||
6
unregistered
16.09.11
✎
10:37
|
(4) см (5)
|
|||
7
ХочуСпец
16.09.11
✎
10:37
|
(5) точно, туплю
спасибо |
|||
8
unregistered
16.09.11
✎
10:44
|
А вообще нафига было брать таблицу движений сс субконто?
Задача решается объединением двух запросов к таблице ОборотыДтКт с периодичностью по регистратору с параметрами у первого - СубконтоДт - договоры и второго - СубконтоКт-договоры. И не надо будет ни каких выборов делать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |