|
Не соображу как запрос построить | ☑ | ||
---|---|---|---|---|
0
alexmobile
31.01.14
✎
09:59
|
Получаю запросом след. данные:
ПериодНачало ПериодКонец Сумма Месяцев 01.01.11 01.03.11 500 3 01.01.11 01.06.11 100 6 нужно получить таблицу Месяц сумма 01.01.11 500/3+100/6 01.02.11 500/3+100/6 01.03.11 500/3+100/6 01.04.11 100/6 01.05.11 100/6 01.06.11 100/6 Как это реализовать запросом? |
|||
1
alexmobile
31.01.14
✎
10:00
|
не туда положил. перенесите в v8
|
|||
2
Ненавижу 1С
гуру
31.01.14
✎
10:06
|
нужен календарь, например РС "регламентированный производственный календарь" в типовых, тогда легко
|
|||
3
alexmobile
31.01.14
✎
10:23
|
(2) да, все просто.
|
|||
4
wPa
31.01.14
✎
10:31
|
(0) берешь таблицу дат - (2) , к ней таблицу с суммами по дате по <= (если нет остатков - нет движений - то берется последнее)
|
|||
5
bolobol
31.01.14
✎
10:41
|
(2) Непонятно, причём здесь календарь...
(0) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Месяцы.Месяц, СУММА(Исх.Сумма / Исх.Месяцев) КАК Поле1 ИЗ Месяцы КАК Месяцы ЛЕВОЕ СОЕДИНЕНИЕ Исх КАК Исх ПО Месяцы.Месяц >= Исх.ПериодНачало И Месяцы.Месяц <= Исх.ПериодКонец СГРУППИРОВАТЬ ПО Месяцы.Месяц |
|||
6
Ненавижу 1С
гуру
31.01.14
✎
10:44
|
(5) а что такое месяцы?
|
|||
7
WildSery
31.01.14
✎
10:48
|
(6) Это календарь. Но он не при чём.
|
|||
8
WildSery
31.01.14
✎
10:49
|
(5) Условие лучше записывать вот так, это легче читается:
ПО Месяцы.Месяц МЕЖДУ Исх.ПериодНачало И Исх.ПериодКонец |
|||
9
bolobol
31.01.14
✎
11:14
|
(6) Временная таблица с датами из (0), я её так обозвал по смыслу увиденного в (0).
(7) У нас, видимо, разные понятия о календаре, см. ответ на (6), а вот (8) - это да. Я, кстати, до сих пор не понимаю, в чём вопрос в (0) был... |
|||
10
WildSery
31.01.14
✎
11:45
|
(9) А по-моему, всё понятно. 1-я табличка - исходные данные. 2-я табличка - что нужно получить.
Я вижу решение как ВЫБРАТЬ ДАТАВРЕМЯ(2013, 1, 1) КАК ПериодНачало, ДАТАВРЕМЯ(2013, 3, 1) КАК ПериодКонец, 500 КАК Сумма, 3 КАК Месяцев ПОМЕСТИТЬ Таблица1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2013, 1, 1), ДАТАВРЕМЯ(2013, 6, 1), 100, 6; ВЫБРАТЬ РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(Календарь.ДатаКалендаря, МЕСЯЦ) КАК Месяц ПОМЕСТИТЬ Календарь ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица1 КАК Т1 ПО (Календарь.ДатаКалендаря МЕЖДУ Т1.ПериодНачало И Т1.ПериодКонец); ВЫБРАТЬ Календарь.Месяц, СУММА(Т1.Сумма / Т1.Месяцев) КАК Сумма ИЗ Таблица1 КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Календарь КАК Календарь ПО (Календарь.Месяц МЕЖДУ Т1.ПериодНачало И Т1.ПериодКонец) СГРУППИРОВАТЬ ПО Календарь.Месяц |
|||
11
Ненавижу 1С
гуру
31.01.14
✎
11:55
|
(9) ну все таки календарь таки есть ))
|
|||
12
bolobol
31.01.14
✎
12:12
|
(11) Это если он есть, да и нужно ли так нагружать базу из-за шести известных заранее дат?
|
|||
13
Ненавижу 1С
гуру
31.01.14
✎
12:15
|
(12) база безусловно нагрузится
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |