|
Запрос к регистру накопления | ☑ | ||
---|---|---|---|---|
0
Shmidt
07.04.14
✎
16:45
|
Из регистра накопления "ПродажиОбороты" необходимо выбрать записи только по тем Контрагентам, записи по которым есть в каждом месяце периода. Пол дня голову ломаю (((
|
|||
1
Господин ПЖ
07.04.14
✎
16:47
|
над чем... вроде несложно, особенно при живом произв. календаре
|
|||
2
shuhard
07.04.14
✎
16:48
|
(0) делай раз, привести в запросе движения к началу месяца, делай два сгруппировать по началу месяца, делай три сосчитать число группировок, делай четыре сравнить с числом месяцев в периоде, что несложно получить путем определения разницы дат в месяцах
|
|||
3
Shmidt
07.04.14
✎
16:49
|
Ну запрос я написал. Делается все, кроме отбора "в каждом месяце"
|
|||
4
Maxus43
07.04.14
✎
16:49
|
(1) зачем календарь? в той задачке излишен он имхо
|
|||
5
Зойч
07.04.14
✎
16:50
|
таблица по периодам, соединение с таблицей данных. Если NULL то оборот = -1.
Группировка по контрагентам, где минимум (оборот) > -1 |
|||
6
Shmidt
07.04.14
✎
16:50
|
Просто не соображу как устроить проверку, что по измерению Контрагент есть запись в каждом месяце?
|
|||
7
Shmidt
07.04.14
✎
16:52
|
(5) таблица по периодам - тупо из Регистра выбрать поле период и все?
Если NULL то оборот = -1 это условие куда сунуть? |
|||
8
Господин ПЖ
07.04.14
✎
16:54
|
(4) ну можно как в (2), закладываться на число записей
|
|||
9
shuhard
07.04.14
✎
16:57
|
(3)[Ну запрос я написал. Делается все, кроме отбора "в каждом месяце"]
т.е. ты ни фига не сделал |
|||
10
Classic
07.04.14
✎
16:57
|
(6)
Лениво в (2) посмотреть? ВЫБРАТЬ РН.Контрагент ИЗ РН.Продажи.Обороты(&НачПер, &КонПер,Месяц) КАК РН СГРУППИРОВАТЬ ПО РН.Контрагент ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РН.Период) = РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&НачПер, МЕСЯЦ), НАЧАЛОПЕРИОДА(&КонПер, МЕСЯЦ), МЕСЯЦ) |
|||
11
Shmidt
07.04.14
✎
17:08
|
Что-то я похоже устал, вообще не соображаю.
Вот запрос: ВЫБРАТЬ ПродажиОбороты.СтоимостьОборот КАК Стоимость, ПродажиОбороты.ПериодМесяц КАК Месяц, ПродажиОбороты.Контрагент.ЮрФизЛицо.Ссылка КАК ЮрФизЛицо, ПродажиОбороты.Регистратор.Ссылка ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг |
|||
12
Shmidt
07.04.14
✎
17:08
|
И куда внедрить (10) ? Или это во временной таблице должно быть
|
|||
13
Shmidt
07.04.14
✎
17:15
|
Ну блин, помогите пожалуйста! Все уже есть только выборку эту доделать и со спокойной душой можно домой идти!
|
|||
14
Wobland
07.04.14
✎
17:17
|
(13) сделай раз
|
|||
15
Shmidt
07.04.14
✎
17:21
|
(14) сделал раз
ВЫБРАТЬ ПродажиОбороты.СтоимостьОборот КАК Стоимость, НАЧАЛОПЕРИОДА(ПродажиОбороты.ПериодМесяц, МЕСЯЦ) КАК Месяц, ПродажиОбороты.Контрагент.ЮрФизЛицо.Ссылка КАК ЮрФизЛицо, ПродажиОбороты.Регистратор.Ссылка ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты ГДЕ ПродажиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг |
|||
16
Wobland
07.04.14
✎
17:24
|
теперь два
|
|||
17
Shmidt
07.04.14
✎
17:28
|
Ну 2 понятно, 3 и 4 в каком месте делать, вот вопрос
|
|||
18
Wobland
07.04.14
✎
17:34
|
сумма(1) + разностьдат
|
|||
19
shuhard
07.04.14
✎
17:41
|
(10) а пофиг 1С-ке в определении дельты
ВЫБРАТЬ &ДатаНач, &ДатаФин, РАЗНОСТЬДАТ(&ДатаНач, &ДатаФин, МЕСЯЦ) КАК ДельтаМЕсяцы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(&ДатаНач), &ДатаФин, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ), &ДатаФин, МЕСЯЦ) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ), КонецПериода(&ДатаФин,Месяц), РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ),КонецПериода(&ДатаФин,Месяц), МЕСЯЦ) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ), НАЧАЛОПЕРИОДА(&ДатаФин,Месяц), РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ),НАЧАЛОПЕРИОДА(&ДатаФин,Месяц), МЕСЯЦ) ДатаНач ДатаФин ДельтаМЕсяцы 31.01.2010 0:00:00 31.12.2014 23:59:59 59 31.01.2010 0:00:00 31.12.2014 23:59:59 59 01.01.2010 0:00:00 31.12.2014 23:59:59 59 01.01.2010 0:00:00 01.12.2014 0:00:00 59 |
|||
20
shuhard
07.04.14
✎
17:42
|
(10) итого:
ВЫБРАТЬ ПродажиОбороты.Контрагент ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаФин, Месяц, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Контрагент Имеющие КОЛИЧЕСТВО(ПродажиОбороты.Период)=РАЗНОСТЬДАТ(&ДатаНач,&ДатаФин, Месяц) |
|||
21
Classic
07.04.14
✎
18:28
|
(20)
Я перестраховался:) |
|||
22
shuhard
07.04.14
✎
19:44
|
(21) =)
|
|||
23
Shmidt
08.04.14
✎
16:37
|
Не вышла шкатулка малахитовая (((
|
|||
24
toypaul
гуру
08.04.14
✎
16:42
|
что-то типа
select f from t where f in (select f,count(d) from (select f,d from t) t gropy by f having count(d) = тут кол-во месяцев за период) |
|||
25
toypaul
гуру
08.04.14
✎
16:43
|
вот так правильней
select f from t where f in (select f,count(d) from (select f,d from t group by f,d) t gropy by f having count(d) = тут кол-во месяцев за период) |
|||
26
toypaul
гуру
08.04.14
✎
16:44
|
вот так ЕЩЕ правильней :)
select f from t where f in (select f from (select f,d from t group by f,d) t gropy by f having count(d) = тут кол-во месяцев за период) |
|||
27
Shmidt
10.04.14
✎
10:56
|
(20) не заработал, тема до сих пор открыта...
Поправка: Из РН "ПродажиОбороты" необходимо получить количество Клиентов, которые покупали товары в каждом месяце периода с группировкой по периоду и по признаку Юр/Физ. Очень сильно надо! |
|||
28
Shmidt
10.04.14
✎
11:14
|
Да что же за печаль? ((
|
|||
29
ИС-2
naïve
10.04.14
✎
12:25
|
получилось или нет?
|
|||
30
Shmidt
11.04.14
✎
10:56
|
Не работает эта печалль никак!
|
|||
31
Shmidt
11.04.14
✎
10:59
|
Должно получиться примерно в таком виде. Прокупленные - контрагенты, которые покупают в каждом месяце
прокупленные месяц физ юр всего октябрь 53 8 61 ноябрь 90 14 104 декабрь 119 21 140 январь 145 27 172 февраль 157 65 222 |
|||
32
Laerys
11.04.14
✎
11:08
|
Мне кажется такой результат не может соответствовать условию, если у тебя контрагенты в каждом месяце периода были, то их количество во всем периоде не должно меняться?
|
|||
33
Shmidt
11.04.14
✎
11:41
|
(32) Да это пример Формы. Данные менеджер от балды вбивал
|
|||
34
Laerys
11.04.14
✎
11:53
|
Да сделай программную обработку и выведи в макет отчета, если тебя это в пятницу держит)
|
|||
35
Shmidt
11.04.14
✎
11:55
|
Уже разобрался )))
|
|||
36
Shmidt
11.04.14
✎
11:55
|
ВЫБРАТЬ
ВложенныйЗапрос1.Период КАК Период, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВложенныйЗапрос1.КонтрагентСсылка) КАК КонтрагентСсылка, ВложенныйЗапрос1.КонтрагентЮрФизЛицоСсылка ИЗ (ВЫБРАТЬ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПродажиОбороты.Период) КАК ПериодКоличество, ПродажиОбороты.Контрагент.Ссылка КАК КонтрагентСсылка, ПродажиОбороты.Контрагент.ЮрФизЛицо.Ссылка КАК КонтрагентЮрФизЛицоСсылка ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Контрагент.Ссылка) КАК ВложенныйЗапрос ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.Период КАК Период, ПродажиОбороты.Контрагент.Ссылка КАК КонтрагентСсылка, ПродажиОбороты.Контрагент.ЮрФизЛицо.Ссылка КАК КонтрагентЮрФизЛицоСсылка ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Период, ПродажиОбороты.Контрагент.Ссылка) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.КонтрагентСсылка = ВложенныйЗапрос1.КонтрагентСсылка И ВложенныйЗапрос.КонтрагентЮрФизЛицоСсылка = ВложенныйЗапрос1.КонтрагентЮрФизЛицоСсылка ГДЕ ВложенныйЗапрос.ПериодКоличество >= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ) СГРУППИРОВАТЬ ПО ВложенныйЗапрос1.Период, ВложенныйЗапрос1.КонтрагентЮрФизЛицоСсылка |
|||
37
Shmidt
11.04.14
✎
11:55
|
Вот так все работает
|
|||
38
Shmidt
11.04.14
✎
11:56
|
Это просто 1/4 всего запроса для отчета
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |