|
Запрос. Не знаю, как 🠗 (Волшебник 01.12.2015 11:36) | ☑ | ||
---|---|---|---|---|
0
Uragan_a
01.12.15
✎
08:19
|
Есть два уровня планирования движения денежных средств (ДДС), 1 - годовой бюджет (вносится помесячно за весь год, сводно по статьям за месяц), 2 - по заявкам (вносятся заявки на расходование средств), на и факт собирается по выпискам.
Суть такова, на изображении видно: http://s001.radikal.ru/i194/1512/20/a9adb3502d95.png Есть общий план месячный (берется из регистра ПланДДС), например он у нас 5000, собираем план по заявкам (самописный регистр) в этом же месяце 5000, должна отразиться группировка. Например: Вариант 1. Статья УПХ 5000 По заявкам 5000 Остаток 0 (план годовой - по заявкам) Вариант 2 Статья УПХ 5000 По заявкам 10000 Остаток - 5000 (план годовой - по заявкам) Вариант 2 Статья УПХ 5000 По заявкам 10000 Остаток - 5000 (план годовой - по заявкам) Вариант 3 Статья УПХ 5000 По заявкам 2500 Остаток - 2500 (план годовой - по заявкам) 4 Вариант, если план по году не введен, а по заявкам есть. Получается запрос, который считает разницу, получается пустым и в результате, получается Статья УПХ 2500 По заявкам 2500 А должно быть: Статья УПХ 0 По заявкам 2500 Остаток - 2500 Посоветуйте, что - нибудь) |
|||
1
Cyberhawk
01.12.15
✎
08:44
|
Нарисуй внятно на картинке, что на входе и что должно быть на выходе
|
|||
2
zalexey
01.12.15
✎
08:51
|
А в чем проблема? Тупо соединить 3 запроса по заявке и по месяцу.
|
|||
3
aleks_default
01.12.15
✎
09:06
|
Сначала формируй таблицу месяцев, а потом к ней присоединяй план и факт.
|
|||
4
Uragan_a
01.12.15
✎
09:08
|
http://s42.radikal.ru/i097/1512/40/81bd55df5bb5.png
У меня там объединение двух таблиц. В первой собираю по заявкам и в поле признака пишу "По заявкам", в другом получаю разницу месяца минус заявки и в поле признака пишу "остаток", так вот проблема, когда в месяце нет записей, значит остаток пуст получается и записей по статье с признаком "остаток" нет, а должно быть = 0 - заявки = (- заявки) |
|||
5
Uragan_a
01.12.15
✎
09:09
|
(3) пока, что только о планах говорю, а их как бы два, не знаю, как правильно назвать
|
|||
6
patria0muerte
01.12.15
✎
09:14
|
" другом получаю разницу месяца минус заявки и в поле признака пишу "остаток","
Вот здесь соединение в запросе местами поменяй и юзай ЕстьNULL(Чототам, 0) |
|||
7
patria0muerte
01.12.15
✎
09:16
|
Запрос лучше сам покажи.
|
|||
8
aleks_default
01.12.15
✎
09:19
|
Не нужно поле признака. Тем более текстовое. Просто сумму по заявкам и сумму плана разнеси по разным колонкам. Объединение сгруппируй и суммируй. А вычислить сумму расхождения можно и потом , в уже сгруппированной таблице.
|
|||
9
Uragan_a
01.12.15
✎
10:29
|
(8) а, как сделать, чтобы эти колонки отражались в виде группировок, как на картинке)
|
|||
10
Uragan_a
01.12.15
✎
10:45
|
У меня вот так сделана компоновка
http://s42.radikal.ru/i097/1512/a9/32f0ec68470e.png |
|||
11
aleks_default
01.12.15
✎
10:53
|
(10)Нет доступа туда. Можешь текст запроса выложить?
|
|||
12
Uragan_a
01.12.15
✎
11:10
|
ВЫБРАТЬ
ВложенныйЗапрос.ДокументДвижения, ВложенныйЗапрос.СтатьяДвиженияДенежныхСредств, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.План, ВложенныйЗапрос.Факт, ВложенныйЗапрос.ДокументКОплате, ВложенныйЗапрос.ПланПоЗаявкам, ВложенныйЗапрос.Период, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ) КАК ПериодДень, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ) КАК ПериодНеделя, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА) КАК ПериодДекада, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ) КАК ПериодМесяц, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ) КАК ПериодКвартал, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие, НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД) КАК ПериодГод ИЗ (ВЫБРАТЬ NULL КАК ДокументДвижения, РеестрПлатежейОстаткиОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Контрагент КАК Контрагент, СУММА(РеестрПлатежейОстаткиОбороты.СуммаПриход) КАК План, 0 КАК Факт, РеестрПлатежейОстаткиОбороты.ДокументКОплате КАК ДокументКОплате, ПОДСТРОКА("По заявкам", 1, 15) КАК ПланПоЗаявкам, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Дата КАК Период ИЗ РегистрНакопления.РеестрПлатежейОстатки.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК РеестрПлатежейОстаткиОбороты СГРУППИРОВАТЬ ПО РеестрПлатежейОстаткиОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Контрагент, РеестрПлатежейОстаткиОбороты.ДокументКОплате, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Дата ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДвиженияДенежныхСредствОбороты.ДокументДвижения, ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств, ДвиженияДенежныхСредствОбороты.Контрагент, 0, ДвиженияДенежныхСредствОбороты.СуммаОборот, NULL, ПОДСТРОКА("По заявкам", 1, 15), ДвиженияДенежныхСредствОбороты.ДокументДвижения.Дата ИЗ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ДвиженияДенежныхСредствОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ NULL, ВложенныйЗапрос.СтатьяДвиженияДенежныхСредств, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.СуммаОборот - ВложенныйЗапрос.СуммаПриход, NULL, NULL, ВложенныйЗапрос.ПланПоЗаявкам, ВложенныйЗапрос.Период ИЗ (ВЫБРАТЬ ПОДСТРОКА("Остаток", 1, 15) КАК ПланПоЗаявкам, ПоСтатьям.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, ПоСтатьям.ДокументПланированияДатаПланирования КАК Период, ПоСтатьям.Контрагент КАК Контрагент, ПоЗаявкам.СуммаПриход КАК СуммаПриход, ПоСтатьям.СуммаОборот КАК СуммаОборот ИЗ (ВЫБРАТЬ СУММА(РеестрПлатежейОстаткиОстаткиИОбороты.СуммаПриход) КАК СуммаПриход, РеестрПлатежейОстаткиОстаткиИОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств КАК ДокументКОплатеСтатьяДвиженияДенежныхСредств ИЗ РегистрНакопления.РеестрПлатежейОстатки.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , ) КАК РеестрПлатежейОстаткиОстаткиИОбороты СГРУППИРОВАТЬ ПО РеестрПлатежейОстаткиОстаткиИОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств) КАК ПоЗаявкам ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.ДокументПланирования.ДатаПланирования КАК ДокументПланированияДатаПланирования, ПланыДвиженияДенежныхСредствОбороты.ПриходРасход КАК ПриходРасход, ПланыДвиженияДенежныхСредствОбороты.Контрагент КАК Контрагент, ПланыДвиженияДенежныхСредствОбороты.ДокументПланирования.ДатаПланирования КАК ДокументПланированияДатаПланирования1, СУММА(ПланыДвиженияДенежныхСредствОбороты.СуммаОборот) КАК СуммаОборот, ПланыДвиженияДенежныхСредствОбороты.Сценарий КАК Сценарий, ПланыДвиженияДенежныхСредствОбороты.ВидДенежныхСредств КАК ВидДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.ПриходРасход КАК ПриходРасход1, ПланыДвиженияДенежныхСредствОбороты.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств1, ПланыДвиженияДенежныхСредствОбороты.Проект КАК Проект, ПланыДвиженияДенежныхСредствОбороты.Контрагент КАК Контрагент1, ПланыДвиженияДенежныхСредствОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента, ПланыДвиженияДенежныхСредствОбороты.Сделка КАК Сделка, ПланыДвиженияДенежныхСредствОбороты.ДокументПланирования КАК ДокументПланирования, ПланыДвиженияДенежныхСредствОбороты.СуммаОборот КАК СуммаОборот1, ПланыДвиженияДенежныхСредствОбороты.СуммаУпрОборот КАК СуммаУпрОборот ИЗ РегистрНакопления.ПланыДвиженияДенежныхСредств.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК ПланыДвиженияДенежныхСредствОбороты СГРУППИРОВАТЬ ПО ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.ДокументПланирования.ДатаПланирования, ПланыДвиженияДенежныхСредствОбороты.ПриходРасход, ПланыДвиженияДенежныхСредствОбороты.Контрагент, ПланыДвиженияДенежныхСредствОбороты.Сценарий, ПланыДвиженияДенежныхСредствОбороты.ВидДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.ВалютаДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.Проект, ПланыДвиженияДенежныхСредствОбороты.ДоговорКонтрагента, ПланыДвиженияДенежныхСредствОбороты.Сделка, ПланыДвиженияДенежныхСредствОбороты.ДокументПланирования, ПланыДвиженияДенежныхСредствОбороты.СуммаОборот, ПланыДвиженияДенежныхСредствОбороты.СуммаУпрОборот, ПланыДвиженияДенежныхСредствОбороты.ДокументПланирования.ДатаПланирования, ПланыДвиженияДенежныхСредствОбороты.ПриходРасход, ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств, ПланыДвиженияДенежныхСредствОбороты.Контрагент) КАК ПоСтатьям ПО ПоЗаявкам.ДокументКОплатеСтатьяДвиженияДенежныхСредств = ПоСтатьям.СтатьяДвиженияДенежныхСредств) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос |
|||
13
Uragan_a
01.12.15
✎
11:12
|
Тут, черт ногу сломит)
|
|||
14
aleks_default
01.12.15
✎
11:33
|
Мда, все сложно. Советую переделать по типу (3).
|
|||
15
Nuobu
01.12.15
✎
12:09
|
Вместо этого запроса:
ВЫБРАТЬ NULL КАК ДокументДвижения, РеестрПлатежейОстаткиОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Контрагент КАК Контрагент, СУММА(РеестрПлатежейОстаткиОбороты.СуммаПриход) КАК План, 0 КАК Факт, РеестрПлатежейОстаткиОбороты.ДокументКОплате КАК ДокументКОплате, ПОДСТРОКА("По заявкам", 1, 15) КАК ПланПоЗаявкам, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Дата КАК Период ИЗ РегистрНакопления.РеестрПлатежейОстатки.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК РеестрПлатежейОстаткиОбороты СГРУППИРОВАТЬ ПО РеестрПлатежейОстаткиОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Контрагент, РеестрПлатежейОстаткиОбороты.ДокументКОплате, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Дата Напиши так: Выбрать * из ( ВЫБРАТЬ NULL КАК ДокументДвижения, РеестрПлатежейОстаткиОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Контрагент КАК Контрагент, СУММА(РеестрПлатежейОстаткиОбороты.СуммаПриход) КАК План, 0 КАК Факт, РеестрПлатежейОстаткиОбороты.ДокументКОплате КАК ДокументКОплате, ПОДСТРОКА("По заявкам", 1, 15) КАК ПланПоЗаявкам, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Дата КАК Период ИЗ РегистрНакопления.РеестрПлатежейОстатки.Обороты(&ДатаНачала, &ДатаОкончания, , ) КАК РеестрПлатежейОстаткиОбороты СГРУППИРОВАТЬ ПО РеестрПлатежейОстаткиОбороты.ДокументКОплате.СтатьяДвиженияДенежныхСредств, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Контрагент, РеестрПлатежейОстаткиОбороты.ДокументКОплате, РеестрПлатежейОстаткиОбороты.ДокументКОплате.Дата Объединить все ВЫБРАТЬ NULL КАК ДокументДвижения, СтатьяУСХППустаяНеЗнаю КАК СтатьяДвиженияДенежныхСредств, КонтрагентМожетТожеПустой КАК Контрагент, 0 КАК План, 0 КАК Факт, ПустойДокумент КАК ДокументКОплате, ПОДСТРОКА("По заявкам", 1, 15) КАК ПланПоЗаявкам, НужныйТебеМесяц КАК Период ) КАК ВложенныйЗапрос Плюс добавить группировки, чтобы "скрыть пустую строку, если есть обороты. |
|||
16
Uragan_a
01.12.15
✎
12:11
|
(14) спс.
Единственное, Александр, Вы сказали, что нужно мой текстовый признак, просто разбить на две колонки. К примеру колонка "по заявкам" и колонка "Остаток". А как сделать тогда, чтобы отражалось в виде группировки: Статья движения 5000 - По заявкам 2500 - Остаток 2500 как нужно настроить компоновку? |
|||
17
Uragan_a
01.12.15
✎
13:50
|
(15) спасибки, помоему, то, что нужно
|
|||
18
Uragan_a
01.12.15
✎
14:31
|
(15) спасибо, направили. Чучуть по другому сделал.
Но вот как раз в группировках тоже не шарю, "Плюс добавить группировки, чтобы "скрыть пустую строку, если есть обороты." Как ее так добавить?) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |