|
Запрос. Дополнить датами. | ☑ | ||
---|---|---|---|---|
0
Mustang
19.05.15
✎
10:09
|
Привожу на простом примере задачу:
Есть элемент справочника "Яблоко" с реквизитами "Начальная дата" - 01.01.2015, "Конечная дата" - 03.01.2015. Как в запросе получить следующее: |01.01.2015 Яблоко |02.01.2015 Яблоко |03.01.2015 Яблоко Подскажите, как решить такую задачу? |
|||
1
ДенисЧ
19.05.15
✎
10:10
|
Сделать табличку со всеми нужными датами и соединить с твоей
|
|||
2
patria0muerte
19.05.15
✎
10:11
|
Либо создать таблицу дат и соединиться с ней, либо, если это СКД - использовать дополнение периода в настройках отчета..
|
|||
3
Mustang
19.05.15
✎
10:13
|
Вариант с таблицей понял. Запросом таблицу дат можно получить?
|
|||
4
patria0muerte
19.05.15
✎
10:14
|
(3) Если есть РС ПроизводственныйКалендарь - то можешь с ним соединиться... а так вроде тоже какие то методы извращенские были...
|
|||
5
patria0muerte
19.05.15
✎
10:16
|
||||
6
patria0muerte
19.05.15
✎
10:16
|
+(5) Коммент №9
|
|||
7
ХардHard
19.05.15
✎
10:17
|
(3) 1.Надо получить временную таблицу 1..31
2.Получить таблицу 1..12 3.Получить таблицу годов , которые есть у тебя в периоде 4.Получить все возможные даты. 5.Отобрать их по заданному периоду. |
|||
8
xaozai
19.05.15
✎
10:18
|
Все даты:
ВЫБРАТЬ
|
|||
9
xaozai
19.05.15
✎
10:20
|
(0)+(8) Всё можно сделать одним запросом.
|
|||
10
GROOVY
19.05.15
✎
10:24
|
Если нужно выводить даты, те которые в запрос не вошли, можно использовать ИТОГИ ПЕРИОДАМИ.
В СКД есть свойства группировки ДОПОЛНЕНИЕ. А так, уже сотни тем про это написаны. |
|||
11
Mustang
19.05.15
✎
10:24
|
Всем спасибо.
|
|||
12
xaozai
19.05.15
✎
10:30
|
ВЫБРАТЬ
|
|||
13
lucifer
19.05.15
✎
10:40
|
(8) это что O.o
|
|||
14
xaozai
19.05.15
✎
10:47
|
(13) Можно скопировать в консоль запросов и посмотреть...
|
|||
15
Mustang
19.05.15
✎
11:13
|
"Select
| 0 as value | |Into | tTable | |Union |Select | 1 | |Union |Select | 2 | |Union |Select | 3 | |Union |Select | 4 | |Union |Select | 5 | |Union |Select | 6 | |Union |Select | 7 | |Union |Select | 8 | |Union |Select | 9 | | | |; |Select | DateAdd(&Begin, Day, second.value * 1000 + minute.value * 100 + hour.value * 10 + day.value) as Period | |From | tTable as second, | tTable as minute, | tTable as hour, | tTable as day |" Так будет короче код. |
|||
16
Web00001
19.05.15
✎
11:28
|
Если есть типовая и там есть заполненный календарь можно просто брать оттуда :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |