|
Запрос, переходящий остаток | ☑ | ||
---|---|---|---|---|
0
kennetmccormick
06.10.16
✎
13:20
|
есть запрос:
нужно этот "Остаток на конец дня" перенести как начальный остаток на след день. Понимаю что соединить с самим собой надо, но не получается ЗЫ. Про "СуммаНачальныйОстатокДт" знаю- запрос просто для примера |
|||
1
DrShad
06.10.16
✎
13:49
|
вообще нифига не понятно
|
|||
2
vyaz
06.10.16
✎
13:50
|
"Остаток на конец дня" КАК " начальный остаток на след день"
|
|||
3
trooba
06.10.16
✎
13:52
|
(0) "Остаток на конец дня." вот тут нужно поставить точку. В этом ошибка, иначе не взлетит
|
|||
4
Ёпрст
06.10.16
✎
14:03
|
ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
|
|||
5
azernot
06.10.16
✎
14:35
|
Цель в чём? Получить остаток на каждый день в запросе?
|
|||
6
kennetmccormick
06.10.16
✎
14:44
|
надо из таблицы вида
01.01.16 | 1000.00 | Остаток на конец дня 03.01.16 | 500.00 | Остаток на конец дня 04.01.16 | 2300.00 | Остаток на конец дня 09.01.16 | 1800.00 | Остаток на конец дня надо получить такую 01.01.16 | 1000.00 | Остаток на конец дня 03.01.16 | 1000.00 | Остаток на начало дня 03.01.16 | 500.00 | Остаток на конец дня 04.01.16 | 500.00 | Остаток на начало дня 04.01.16 | 2300.00 | Остаток на конец дня 09.01.16 | 2300.00 | Остаток на начало дня 09.01.16 | 1800.00 | Остаток на конец дня |
|||
7
В тылу врага
06.10.16
✎
14:47
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ХозрасчетныйОстаткиИОбороты.Организация КАК Организация, ХозрасчетныйОстаткиИОбороты.Период КАК Период, ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК Остаток 1 КАК ФлагПорядка ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Счет В ИЕРАРХИИ (&МассивСчетовБанк), , ) КАК ХозрасчетныйОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ РАЗРЕШЕННЫЕ ХозрасчетныйОстаткиИОбороты.Организация КАК Организация, ХозрасчетныйОстаткиИОбороты.Период КАК Период, ХозрасчетныйОстаткиИОбороты.СуммаНачальныйныйОстатокДт 0 КАК ФлагПорядка ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Счет В ИЕРАРХИИ (&МассивСчетовБанк), , ) КАК ХозрасчетныйОстаткиИОбороты УПОРЯДОЧИТЬ ПО Период, Организация, ФлагПорядка |
|||
8
DrShad
06.10.16
✎
14:48
|
(7) что за адский мегапизнец?
|
|||
9
DrShad
06.10.16
✎
14:49
|
(6) в поиск Остатки на каждый день запросом
|
|||
10
azernot
06.10.16
✎
14:53
|
(6) Ну поясни, чем тебя не устраивают поля
СуммаКонечныйОстатокДт и СуммаНачальныйОстатокДт ? Или подразумевается, что вместо этих полей, какое-то своё мега поле, рассчитываемое по мега-супер-пупер-формуле? |
|||
11
В тылу врага
06.10.16
✎
14:56
|
(8) как просил автор
|
|||
12
kennetmccormick
06.10.16
✎
14:56
|
(10) запрос для примера, чтоб похожую исходную таблицу можно было получить. на деле там совсем по-другому и портянка с запросами большущая
|
|||
13
azernot
06.10.16
✎
15:12
|
Если "каждый день" не самоцель, то как-то так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ ХозрасчетныйОстаткиИОбороты.Период КАК Дата, ХозрасчетныйОстаткиИОбороты.Организация, ХозрасчетныйОстаткиИОбороты.Субконто1, ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК ОстатокНаНачало, ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК Остаток ПОМЕСТИТЬ Остатки ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Счет В ИЕРАРХИИ (&МассивСчетовБанк), , ) КАК ХозрасчетныйОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОстаткиКонечные.Организация, ОстаткиКонечные.Субконто1, ОстаткиКонечные.Дата КАК Дата, ЕСТЬNULL(ОстаткиНачальные.Остаток, ОстаткиКонечные.ОстатокНаНачало) КАК ОстатокНачальный, ОстаткиКонечные.Остаток КАК ОстатокКонечный ИЗ Остатки КАК ОстаткиКонечные ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ОстаткиКонечные.Организация КАК Организация, ОстаткиКонечные.Субконто1 КАК Субконто1, ОстаткиКонечные.Дата КАК Дата, МАКСИМУМ(ОстаткиНачальные.Дата) КАК ДатаНачальногоОстатка ИЗ Остатки КАК ОстаткиКонечные ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК ОстаткиНачальные ПО ОстаткиКонечные.Организация = ОстаткиНачальные.Организация И ОстаткиКонечные.Субконто1 = ОстаткиНачальные.Субконто1 И ОстаткиКонечные.Дата > ОстаткиНачальные.Дата СГРУППИРОВАТЬ ПО ОстаткиКонечные.Субконто1, ОстаткиКонечные.Организация, ОстаткиКонечные.Дата) КАК ДатыОстатков ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК ОстаткиНачальные ПО ДатыОстатков.Организация = ОстаткиНачальные.Организация И ДатыОстатков.Субконто1 = ОстаткиНачальные.Субконто1 И ДатыОстатков.ДатаНачальногоОстатка = ОстаткиНачальные.Дата ПО ОстаткиКонечные.Организация = ДатыОстатков.Организация И ОстаткиКонечные.Субконто1 = ДатыОстатков.Субконто1 И ОстаткиКонечные.Дата = ДатыОстатков.Дата УПОРЯДОЧИТЬ ПО Дата (на всякий случай добавил Субконто1, чтобы пример показывал как действовать с несколькими аналитиками, и взял на себя смелость предположить, что "самый первый начальный остаток" известен изначально, но при желании можно определить период &НачалоПериода - 1 день) |
|||
14
DrShad
06.10.16
✎
15:13
|
(12) уууууу, как все запущенно - обманывать не хорошо
|
|||
15
KishMish
06.10.16
✎
15:33
|
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Организация, Период КАК Период, СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт Поместить вт_1 ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, День, , Счет В ИЕРАРХИИ (&МассивСчетовБанк), , ) КАК ХозрасчетныйОстаткиИОбороты СГРУППИРОВАТЬ ПО Организация, Период, СуммаКонечныйОстатокДт; ВЫБРАТЬ //ищем все меньшие периоды вт_1.Организация, вт_1.Период, вт_Пред.Период КАК ПериодПред, вт_Пред.СуммаКонечныйОстатокДт ПОМЕСТИТЬ вт_2 ИЗ вт_1 КАК вт_1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт_1 КАК вт_Пред ПО вт_1.Организация = вт_11.Организация И ( вт_1.Период > вт_Пред.Период); //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ //ищем максимум периодов среди меньших периодов вт_2.Организация, вт_2.Период, вт_2.СуммаКонечныйОстатокДт, МАКСИМУМ(вт_2.Период1) КАК Период1 ПОМЕСТИТЬ вт_3 ИЗ вт_2 КАК вт_2 СГРУППИРОВАТЬ ПО вт_2.Организация, вт_2.Период, вт_2.СуммаКонечныйОстатокДт; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ //соеденям таблицы вт_2.Организация, вт_2.Период КАК ТекущийПериод, вт_2.СуммаКонечныйОстатокДт КАК ТекущийОстток, вт_2.Период1 КАК ПредыдущийПериод, вт_2.СуммаКонечныйОстатокДт КАК ПРедыдущийОстаток ИЗ вт_2 КАК вт_2 ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт_3 КАК вт_3 ПО вт_2.Организация = вт_3.Организация И вт_2.Период = вт_3.Период И вт_2.Период1 = вт_3.Период1 УПОРЯДОЧИТЬ ПО Организация, Период |
|||
16
KishMish
06.10.16
✎
15:34
|
(15) не отрабатывал, взял оригинал со своего запроса для поиска "предыдущего значения", заменил там на твои идентификаторы
|
|||
17
azernot
06.10.16
✎
15:49
|
(16) >не отрабатывал
А зря. Запрос не рабочий, даже если "подправить" синтаксические ошибки. |
|||
18
KishMish
06.10.16
✎
15:53
|
(17) алгоритм
1. соеденям Исходную таблицу с собой же по условию Вт1.Период>Вт2.Период - 2. Ищем максимальное значение во втором периоде - получаем таблицу из предыдущих периодов 3. Соеденяем с исходной |
|||
19
azernot
06.10.16
✎
15:55
|
(18) Алгоритм верный. Запрос - нет.
|
|||
20
kennetmccormick
07.10.16
✎
15:43
|
(14) в чем обман? в (0) написано что запрос для примера
спасибо всем за помощь. сделал немного по-другому. если интересно выложу позже |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |