Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 15:53

Вопрос по запросу

Автор DarkM3, 06 авг 2013, 18:02

0 Пользователей и 1 гость просматривают эту тему.

DarkM3

Господа, всем доброго времени суток!

Подскажите плиз, есть такой запрос:

ВЫБРАТЬ
ЕСТЬNULL(ВложенныйКотировки.ПризнаваемаяКотировка, ЛОЖЬ) КАК ИмеетПризнаваемуюКотировку,
ЕСТЬNULL(ВложенныйЛисты.ВходитВКотировальныеЛисты, ЛОЖЬ) КАК ВходитВКотировальныеЛисты,
ОстаткиЦБОстатки.ЦБ.ТипЦБ КАК ТипЦБ,
ОстаткиЦБОстатки.ЦБ.ВидЦБ КАК ВидЦБ,
ОстаткиЦБОстатки.ЦБ.ПодвидОблигаций КАК ПодвидЦБ,
ВЫБОР КОГДА Не ОстаткиЦБОстатки.ЦБ.ВидЦБ В (&ИнострЦБ) ТОГДА
ОстаткиЦБОстатки.ЦБ.Эмитент.ФормаСобственности
ИНАЧЕ &ПустаяФормаСобственности
КОНЕЦ КАК ФормаСобственности,
ОстаткиЦБОстатки.ЦБ.Эмитент КАК Эмитент,
ОстаткиЦБОстатки.ЦБ КАК ЦБ,
СУММА(ЕСТЬNULL(ОстаткиЦБОстатки.СуммаОстаток, 0) / &Делитель + ЕСТЬNULL(ПереоценкаЦБОстатки.СуммаПереоценкиОстаток, 0) / &Делитель) КАК Баланс,
СУММА(ЕСТЬNULL(ОстаткиЦБОстатки.СуммаОстаток, 0) + ЕСТЬNULL(ПереоценкаЦБОстатки.СуммаПереоценкиОстаток, 0)) КАК Баланс2,
ОстаткиЦБОстатки.ЦБ.Представление КАК ПредставлениеЦБ,
ОстаткиЦБОстатки.ЦБ.Код КАК ЦБКод,
ОстаткиЦБОстатки.ЦБ.НомерГосРег КАК НомерГосРег,
ЕстьNULL(ОбъемРазмещенияЦБСрезПоследних.ОбъемРазмещения,0) КАК ОбъемРазмещения,
ОстаткиЦБОстатки.ЦБ.КупоннаяОблигация КАК КупоннаяОблигация,
ОстаткиЦБОстатки.ЦБ.ВалютаНоминала КАК ЦБВалютаНоминала,
СУММА(ОстаткиЦБОстатки.КоличествоОстаток) КАК Количество,
МИНИМУМ(ОстаткиЦБОстатки.Партия.Дата) КАК ДатаПокупки,
ЕСТЬNULL(НоминалЦБСрезПоследних.Сумма, 0) КАК ЦБНоминалЦБ,
ИсторияЦБСрезПоследних.БиржаПереоценки КАК ЦБГдеКотируется,
ЕстьNULL(ИсторияЦБСрезПоследних.ОбращаетсяНаОРЦБ,ЛОЖЬ) КАК ОбращаетсяНаОРЦБ
ИЗ
РегистрНакопления.ОстаткиЦБ.Остатки(&НаДату, ПИФ = &ПИФ) КАК ОстаткиЦБОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПереоценкаЦБ.Остатки(&НаДату, ПИФ = &ПИФ) КАК ПереоценкаЦБОстатки
ПО ОстаткиЦБОстатки.ЦБ = ПереоценкаЦБОстатки.ЦБ
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ИсторияКотировальныхЛистовСрезПоследних.ЦБ КАК ЦБ,
МАКСИМУМ(ИсторияКотировальныхЛистовСрезПоследних.ВходитВКотировальныеЛисты) КАК ВходитВКотировальныеЛисты
ИЗ
РегистрСведений.ИсторияКотировальныхЛистов.СрезПоследних(&НаДату, ) КАК ИсторияКотировальныхЛистовСрезПоследних

СГРУППИРОВАТЬ ПО
ИсторияКотировальныхЛистовСрезПоследних.ЦБ) КАК ВложенныйЛисты
ПО ОстаткиЦБОстатки.ЦБ = ВложенныйЛисты.ЦБ
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
Котировки.ЦеннаяБумага КАК ЦБ,
Количество(Различные Котировки.Биржа) КАК Биржа,
МАКСИМУМ(ВЫБОР
КОГДА ЕСТЬNULL(Котировки.ПризнаваемаяКотировка, 0) <> 0
ТОГДА ИСТИНА
КОНЕЦ) КАК ПризнаваемаяКотировка
ИЗ
РегистрСведений.Котировки КАК Котировки
ГДЕ
Котировки.Период = &НачалоДняНаДату
И Котировки.Биржа.ДляКонвертации = ЛОЖЬ

СГРУППИРОВАТЬ ПО
Котировки.ЦеннаяБумага) КАК ВложенныйКотировки
ПО ОстаткиЦБОстатки.ЦБ = ВложенныйКотировки.ЦБ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЦБ.СрезПоследних(&НаДату, ) КАК ИсторияЦБСрезПоследних
ПО ОстаткиЦБОстатки.ЦБ = ИсторияЦБСрезПоследних.ЦБ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НоминалЦБ.СрезПоследних(&НаДату, ) КАК НоминалЦБСрезПоследних
ПО ОстаткиЦБОстатки.ЦБ = НоминалЦБСрезПоследних.ЦенныеБумаги
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОбъемРазмещенияЦБ.СрезПоследних(&НаДату, ) КАК ОбъемРазмещенияЦБСрезПоследних
ПО ОстаткиЦБОстатки.ЦБ = ОбъемРазмещенияЦБСрезПоследних.ЦБ

СГРУППИРОВАТЬ ПО
ОстаткиЦБОстатки.ЦБ.ТипЦБ,
ОстаткиЦБОстатки.ЦБ.ВидЦБ,
ОстаткиЦБОстатки.ЦБ.ПодвидОблигаций,
ОстаткиЦБОстатки.ЦБ,
ОстаткиЦБОстатки.ЦБ.Представление,
ОстаткиЦБОстатки.ЦБ.Код,
ЕстьNULL(ОбъемРазмещенияЦБСрезПоследних.ОбъемРазмещения,0),
ОстаткиЦБОстатки.ЦБ.Эмитент.ФормаСобственности,
ЕСТЬNULL(НоминалЦБСрезПоследних.Сумма, 0),
ЕСТЬNULL(ВложенныйЛисты.ВходитВКотировальныеЛисты, ЛОЖЬ),
ЕСТЬNULL(ВложенныйКотировки.ПризнаваемаяКотировка, ЛОЖЬ),
ИсторияЦБСрезПоследних.БиржаПереоценки,
ЕстьNULL(ИсторияЦБСрезПоследних.ОбращаетсяНаОРЦБ,ЛОЖЬ)

УПОРЯДОЧИТЬ ПО
ТипЦБ
ИТОГИ
СУММА(Баланс),
СУММА(Баланс2)
ПО
ИмеетПризнаваемуюКотировку,
ВходитВКотировальныеЛисты,
ТипЦБ,
ВидЦБ,
ПодвидЦБ,
ФормаСобственности


Подскажите как в этом запросе сделать условии, что при подвиде облигаций в любом варианте возвращать значение для ВложенныйКотировки.ПризнаваемаяКотировка Ложь, даже если реально данные бумаги в базе имеют ПризнаваемаяКотировка

MuI_I_Ika

Я так понимаю нужно вот это
(ВЫБОР КОГДА ОстаткиЦБОстатки.ЦБ.ПодвидОблигаций = &НужныйНамПодвид
ТОГДА ЛОЖЬ
ИНАЧЕ ЕСТЬNULL(ВложенныйКотировки.ПризнаваемаяКотировка, ЛОЖЬ)
КОНЕЦ) КАК ИмеетПризнаваемуюКотировку,

DarkM3

Завтра с утра попробую... Спасибо надеюсь что прокатит

DarkM3

Всем спасибо. задача решена.

Теги: Запрос 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск