|
Получить последовательности значений в запросе | ☑ | ||
---|---|---|---|---|
0
vicof
17.03.15
✎
17:18
|
01.01.2015 1 1
02.01.2015 1 2 03.01.2015 1 3 04.01.2015 0 0 05.01.2015 1 1 06.01.2015 1 2 07.01.2015 0 0 08.01.2015 0 0 09.01.2015 0 0 10.01.2015 0 0 11.01.2015 1 1 12.01.2015 1 2 Есть табличка с двумя колонками. Дата и цифра. Нужно получить третью колонку. Т.е. нарастающий итог до первого нуля. Потом нарастающий итог должен считаться заново. Каким макаром? Просто нарастающий итог вывел. |
|||
1
Nuobu
17.03.15
✎
17:20
|
(0) Выведи из этой таблицы таблицу нулей. И левым соединением с ней по максимуму.
|
|||
2
palpetrovich
17.03.15
✎
17:26
|
зачем запросом? банальной выборкой имхо проще и наглядней
|
|||
3
vicof
17.03.15
✎
17:29
|
(2) Потому что эти цифры дальше будут участвовать в запросе.
|
|||
4
Крошка Ру
17.03.15
✎
17:45
|
(3)Вот примерно тоже самое:
В запросе заполнить пустые значения последним значением по периоду |
|||
5
D_E_S_131
17.03.15
✎
17:46
|
Головоломство какое-то. Интересно как Nuobu в (1) предлагал сделать.
(4) "Последнее значение" <> "Нарастающий итог" |
|||
6
Nuobu
17.03.15
✎
18:09
|
(5) Берешь таблицу с нулями и периодами.
Получается так: 04.01.2015 0 0 07.01.2015 0 0 08.01.2015 0 0 09.01.2015 0 0 10.01.2015 0 0. Потом берешь таблицу без нулей: 01.01.2015 1 1 02.01.2015 1 2 03.01.2015 1 3 05.01.2015 1 1 06.01.2015 1 2 11.01.2015 1 1 12.01.2015 1 2 По полю ПериодСНулями < ПериодБезНулей и группировкой по второму периоду получаешь таблицу: 04.01.2015 0 0 03.01.2015 07.01.2015 0 0 06.01.2015 08.01.2015 0 0 06.01.2015 09.01.2015 0 0 06.01.2015 10.01.2015 0 0 06.01.2015 И дальше левым соединением по второму периоду соединяешь с первой таблицей: 04.01.2015 0 0 03.01.2015 3 07.01.2015 0 0 06.01.2015 2 08.01.2015 0 0 06.01.2015 2 09.01.2015 0 0 06.01.2015 2 10.01.2015 0 0 06.01.2015 2. Или я что-то не так понял? |
|||
7
Крошка Ру
17.03.15
✎
18:56
|
(5) Я понимаю.
Но принцип такой же. Только при соединении брать не максимум, а сумму. |
|||
8
vicof
20.03.15
✎
15:53
|
Сделал.
Всем спасибо. //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ фдУстановкаГрафиковИнвентаризацийГрафики.Контрагент, фдУстановкаГрафиковИнвентаризацийГрафики.ВидИнвентаризации, фдУстановкаГрафиковИнвентаризацийГрафики.Дата ПОМЕСТИТЬ ВТ_Док ИЗ Документ.фдУстановкаГрафиковИнвентаризаций.Графики КАК фдУстановкаГрафиковИнвентаризацийГрафики ГДЕ фдУстановкаГрафиковИнвентаризацийГрафики.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ фдПериодичностьПроведенияИнвентаризаций.Период, фдПериодичностьПроведенияИнвентаризаций.Рейтинг, фдПериодичностьПроведенияИнвентаризаций.ПериодичностьПроверки, фдПериодичностьПроведенияИнвентаризаций.ПериодичностьПроверки2, фдПериодичностьПроведенияИнвентаризаций.ПериодичностьПроверки4 ПОМЕСТИТЬ ВТ_Периодичность ИЗ РегистрСведений.фдПериодичностьПроведенияИнвентаризаций КАК фдПериодичностьПроведенияИнвентаризаций ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ фдИнвентаризацияДилерскихСкладов.Дата, фдИнвентаризацияДилерскихСкладов.ВидИнвентаризации, фдИнвентаризацияДилерскихСкладов.Контрагент, фдИнвентаризацияДилерскихСкладов.Организация, ВЫБОР КОГДА фдИнвентаризацияДилерскихСкладов.РезультатИнвентаризации = ЗНАЧЕНИЕ(Перечисление.фдРезультатыИнвентаризации.Положительный) ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК РезультатИнвентаризации ПОМЕСТИТЬ ВТ_РезультатыИнвентаризаций ИЗ Документ.фдИнвентаризацияДилерскихСкладов КАК фдИнвентаризацияДилерскихСкладов ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_результатыИнвентаризаций.Дата, ВТ_результатыИнвентаризаций.ВидИнвентаризации, ВТ_результатыИнвентаризаций.Контрагент, ВТ_результатыИнвентаризаций.Организация, ВТ_результатыИнвентаризаций.РезультатИнвентаризации ПОМЕСТИТЬ ВТ_РезультатыСНулевымиДатами ИЗ ВТ_РезультатыИнвентаризаций КАК ВТ_результатыИнвентаризаций ГДЕ ВТ_результатыИнвентаризаций.РезультатИнвентаризации = 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Вложенный.Дата, Вложенный.ВидИнвентаризации, Вложенный.Контрагент, Вложенный.Организация, СУММА(ВЫБОР КОГДА Вложенный.РезультатИнвентаризации = 0 ТОГДА 0 КОГДА Вложенный.РезультатИнвентаризации = 1 ТОГДА ВЫБОР КОГДА Вложенный.ДатаПредыдущегоНуля >= ВТ_РезультатыИнвентаризаций1.Дата И НЕ Вложенный.ДатаПредыдущегоНуля = ДАТАВРЕМЯ(1, 1, 1) ТОГДА 0 ИНАЧЕ Вложенный.РезультатИнвентаризации КОНЕЦ ИНАЧЕ 1 КОНЕЦ) КАК Результат ИЗ (ВЫБРАТЬ ВТ_РезультатыИнвентаризаций.Дата КАК Дата, ВТ_РезультатыИнвентаризаций.ВидИнвентаризации КАК ВидИнвентаризации, ВТ_РезультатыИнвентаризаций.Контрагент КАК Контрагент, ВТ_РезультатыИнвентаризаций.Организация КАК Организация, ВТ_РезультатыИнвентаризаций.РезультатИнвентаризации КАК РезультатИнвентаризации, МАКСИМУМ(ЕСТЬNULL(ВТ_РезультатыСНулевымиДатами.Дата, ДАТАВРЕМЯ(1, 1, 1))) КАК ДатаПредыдущегоНуля ИЗ ВТ_РезультатыИнвентаризаций КАК ВТ_РезультатыИнвентаризаций ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РезультатыСНулевымиДатами КАК ВТ_РезультатыСНулевымиДатами ПО ВТ_РезультатыИнвентаризаций.Организация = ВТ_РезультатыСНулевымиДатами.Организация И ВТ_РезультатыИнвентаризаций.Контрагент = ВТ_РезультатыСНулевымиДатами.Контрагент И ВТ_РезультатыИнвентаризаций.ВидИнвентаризации = ВТ_РезультатыСНулевымиДатами.ВидИнвентаризации И ВТ_РезультатыИнвентаризаций.Дата > ВТ_РезультатыСНулевымиДатами.Дата СГРУППИРОВАТЬ ПО ВТ_РезультатыИнвентаризаций.Дата, ВТ_РезультатыИнвентаризаций.ВидИнвентаризации, ВТ_РезультатыИнвентаризаций.Контрагент, ВТ_РезультатыИнвентаризаций.Организация, ВТ_РезультатыИнвентаризаций.РезультатИнвентаризации) КАК Вложенный ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РезультатыИнвентаризаций КАК ВТ_РезультатыИнвентаризаций1 ПО Вложенный.Организация = ВТ_РезультатыИнвентаризаций1.Организация И Вложенный.Контрагент = ВТ_РезультатыИнвентаризаций1.Контрагент И Вложенный.ВидИнвентаризации = ВТ_РезультатыИнвентаризаций1.ВидИнвентаризации И Вложенный.Дата >= ВТ_РезультатыИнвентаризаций1.Дата СГРУППИРОВАТЬ ПО Вложенный.Дата, Вложенный.ВидИнвентаризации, Вложенный.Контрагент, Вложенный.Организация |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |