|
Получить в запросе количество выходных дней за каждый период выборки | ☑ | ||
---|---|---|---|---|
0
Melcor
17.09.19
✎
08:49
|
Добрый день. 1С 8.2
Подскажите как можно запросом получить кол-во выходных дней по каждой выборке запроса Я для начала сформировал ВТ календаря с датами и переменной выходной день: ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&д3пг, ДЕНЬ, ВложенныйЗапрос.НомерДняИзДиапазона) КАК Период ПОМЕСТИТЬ ДНИ ИЗ (ВЫБРАТЬ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d КАК НомерДняИзДиапазона ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&д3пг, &д1пг, ДЕНЬ)) КАК ВложенныйЗапрос ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДНИ.Период, ВЫБОР КОГДА ДЕНЬНЕДЕЛИ(ДНИ.Период) = 6 ИЛИ ДЕНЬНЕДЕЛИ(ДНИ.Период) = 7 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК Выходной ПОМЕСТИТЬ ДНИ_СВыходными ИЗ ДНИ КАК ДНИ ; Но никак не пойму, как используя её получить кол-во выходных, есть готовая ВТ: ВЫБРАТЬ ВТ_ОснТаб.ГруппаНоменклатура, ВТ_ОснТаб.Номенклатура, ВТ_ОснТаб.ХарактеристикаНоменклатуры, ВТ_ОснТаб.ДатаПриходаВСеть, ВТ_ОснТаб.ДатаПриходаНаФотостудию, ВТ_ОснТаб.ДатаФото, ВТ_ОснТаб.РазницаМеждуПриходомИФото, ВложенныйЗапрос.Выходной ИЗ ВТ_ОснТаб КАК ВТ_ОснТаб Здесь мне необходима переменная кол-во выходных между ОснТаб.ДатаПриходаНаФотостудию и ОснТаб.ДатаФото Зная кол-во выходных я смогу посчитать кол-во рабочих дней. Регистр календарь и валюты не предлагать) Календаря нет, валюты не своевременно заполняется |
|||
1
Smile 8D
17.09.19
✎
09:19
|
Сложно что-то сказать, если вы принципиально отказываетесь использовать молоток для забивания гвоздей. Если стоит задача подсчета рабочих и выходных дней, то для этого есть готовый инструмент - удобный, гибкий. Если вы хотите делать по своему, то делайте.
|
|||
2
Melcor
17.09.19
✎
09:21
|
(1) Так молотка нет, вот в чем проблема
|
|||
3
Melcor
17.09.19
✎
09:22
|
да и посути, какая разница у же сделал ВТ с датами, я не помогу понять как из неё за период выборки кол-во выходных получить, если это вообще возможно
|
|||
4
ДенисЧ
17.09.19
✎
09:24
|
выбрать Количество(Дата)
из ТаблицаДат где Дата МЕЖДУ &НачДата И &КонДата где ЭтоВыходной |
|||
5
Melcor
17.09.19
✎
09:25
|
(4) необходима переменная кол-во выходных между ОснТаб.ДатаПриходаНаФотостудию и ОснТаб.ДатаФото
|
|||
6
bootini
17.09.19
✎
09:31
|
Соединяй с таблице, в связи ставь Период Между ОснТаб.ДатаПриходаНаФотостудию и ОснТаб.ДатаФото И НЕ Выходной = 1, группировка Количество(Период)
|
|||
7
bootini
17.09.19
✎
09:32
|
(5) зачем тебе выходные если ты сам пишешь: "я смогу посчитать кол-во рабочих дней", конечная цель выходные или рабочие..
|
|||
8
тарам пам пам
17.09.19
✎
09:33
|
(5) так оно почти также и пишется (только проще сразу рабочие посчитать):
ВЫБРАТЬ ВТ_ОснТаб.ГруппаНоменклатура, ВТ_ОснТаб.Номенклатура, ВТ_ОснТаб.ХарактеристикаНоменклатуры, ВТ_ОснТаб.ДатаПриходаВСеть, ВТ_ОснТаб.ДатаПриходаНаФотостудию, ВТ_ОснТаб.ДатаФото, ВТ_ОснТаб.РазницаМеждуПриходомИФото, КОЛИЧЕСТВО(ДНИ_СВыходными.Выходной) КАК РабочиеДни ИЗ ВТ_ОснТаб КАК ВТ_ОснТаб ЛЕВОЕ СОЕДИНЕНИЕ ДНИ_СВыходными ПО ДНИ_СВыходными.Период МЕЖДУ ВТ_ОснТаб.ДатаПриходаНаФотостудию И ВТ_ОснТаб.ДатаФото И ДНИ_СВыходными.Выходной = 0 СГРУППИРОВАТЬ ПО ВТ_ОснТаб.ГруппаНоменклатура, ВТ_ОснТаб.Номенклатура, ВТ_ОснТаб.ХарактеристикаНоменклатуры, ВТ_ОснТаб.ДатаПриходаВСеть, ВТ_ОснТаб.ДатаПриходаНаФотостудию, ВТ_ОснТаб.ДатаФото, ВТ_ОснТаб.РазницаМеждуПриходомИФото |
|||
9
Melcor
17.09.19
✎
09:36
|
(7) Зная кол-во выходных я смогу посчитать кол-во рабочих дней, цель кол-во рабочих
|
|||
10
Melcor
17.09.19
✎
09:38
|
(8) Прекрасно! Спасибо!
|
|||
11
Melcor
17.09.19
✎
09:40
|
(8) Ан нет, двойные записи получаются)
|
|||
12
Franchiser
гуру
17.09.19
✎
09:46
|
Зачем, если есть производственный календарь
|
|||
13
ДенисЧ
17.09.19
✎
09:47
|
(12) "Календаря нет" (с)
|
|||
14
ДенисЧ
17.09.19
✎
09:48
|
(11) Так запихни выходные дни в временную таблицу сгруппированными и посчитанными.
|
|||
15
Smile 8D
17.09.19
✎
11:47
|
(2) я имел в виду производственный календарь из БСП. Обычно после подсчета суббот и воскресений встает вопрос о праздничных днях и других незапланированных выходных. Производственный календарь все это позволяет учесть.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |