Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/67: Рейтинг темы: голосов - 67, средняя оценка - 4.63
Joker_vad
Эксперт 1С
475 / 413 / 92
Регистрация: 26.09.2012
Сообщений: 1,854
1

Разбить период по дням в запросе

16.07.2013, 14:41. Просмотров 12528. Ответов 9
Метки нет (Все метки)

Как разбить период по дням в запросе? Только так?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) КАК Период
ИЗ
    (ВЫБРАТЬ
        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 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК РазностьДат
 
СГРУППИРОВАТЬ ПО
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона)
 
УПОРЯДОЧИТЬ ПО
    Период
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2013, 14:41
Ответы с готовыми решениями:

Период из запроса разбить на начало периода и конец периода
есть запрос &quot;выбрать оборотыпродажи. период как период из продажиобороты &quot; на выходе имеем...

Дата по рабочим дням в запросе
Добрый день. УТ 10 В документе Реализация добавлен реквизит...

Разбить период на подпериоды
Здравствуйте, столкнулся с такой проблемой, есть период с 1.10.16 по 31.10.16, он разбит в таблице...

В запросе задаем период отборки. Отчет на основании запроса. Как выводить в отчете период отборки?
В запросе задаем период отборки. Отчет на основании запроса. Как выводить в отчете период отборки?...

Разбить интервал по дням
CREATE TABLE #Result( OperatorID uniqueidentifier, switch int, BusyTime INT, --Время в...

9
Fenomen
899 / 876 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
16.07.2013, 14:52 2
Цитата Сообщение от Joker_vad Посмотреть сообщение
Как разбить период по дням в запросе?
Уточните, что имеется в виду? "Монстро запрос" даже анализировать не хочется.
0
Joker_vad
Эксперт 1С
475 / 413 / 92
Регистрация: 26.09.2012
Сообщений: 1,854
16.07.2013, 14:58  [ТС] 3
есть период с 01.01.2013 по 04.04.2013, нужно чтобы в запросе вывелось 01.01.2013, 02.01.2013, 03.01.2013, 04.01.2013.
Цитата Сообщение от Fenomen Посмотреть сообщение
"Монстро запрос"
к сожалению тоже не мой. А так задача состоит в том что строится отчет за период где по дням можно посмотреть занят номер или нет
0
Fenomen
899 / 876 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
16.07.2013, 18:37 4
1. Для конструкции ИТОГИ есть возможность указания доп. параметра ПЕРИОДАМИ.
2. В типовых конфигурациях есть регистр сведений РегламентированныйПроизводственныйКалендарь, можно выбирать дни из него.
0
16.07.2013, 18:37
wladimir_ui
Шизофреник
358 / 361 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
16.07.2013, 20:37 5
вар 1 (топор): в цикле загони в таблицу дни между границами, таблицу сунь в запрос;
вар 2 (по конкретным обстоятельствам): если по этим периодам будешь выбирать с оборотного регистра - можно указать переодичность в запросе у самого регистра (см.скрин);
вар 3...
" по дням можно посмотреть занят номер или нет" - уточни более детально, что делаешь запросом
0
Изображения
Тип файла: jpg Снимок.JPG (21.6 Кб, 7 просмотров)
Joker_vad
Эксперт 1С
475 / 413 / 92
Регистрация: 26.09.2012
Сообщений: 1,854
17.07.2013, 09:18  [ТС] 6
Перекрестная таблица в СКД тут вот должно получиться то что в итоге. Вторая картинка

Добавлено через 11 часов 21 минуту
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона) КАК Период
ПОМЕСТИТЬ ТаблицаДат
ИЗ
    (ВЫБРАТЬ
        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 <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ)) КАК РазностьДат
 
СГРУППИРОВАТЬ ПО
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, РазностьДат.НомерДняИзДиапазона)
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаДат.Период КАК Период,
    ВЫБОР
        КОГДА ПроживаниеОбороты.ПериодС <= ТаблицаДат.Период
                И ТаблицаДат.Период <= ПроживаниеОбороты.ПериодПо
            ТОГДА 1
        КОГДА Бронировние.ПериодС <= ТаблицаДат.Период
                И ТаблицаДат.Период <= Бронировние.ПериодПо
            ТОГДА 2
        ИНАЧЕ 3
    КОНЕЦ КАК Занят,
    Номера.Ссылка
ИЗ
    ТаблицаДат КАК ТаблицаДат,
    Справочник.Номера КАК Номера
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Проживание.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПроживаниеОбороты
        ПО (ПроживаниеОбороты.Номер = Номера.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Бронирование КАК Бронировние
        ПО (Бронировние.Номер = Номера.Ссылка)
 
УПОРЯДОЧИТЬ ПО
    Период
вот это результирующий запрос который у меня получился
0
wladimir_ui
Шизофреник
358 / 361 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
17.07.2013, 12:49 7
проживание/бронирование - оборотные регистры - вар 2
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
17.07.2013, 16:49 8
Цитата Сообщение от Fenomen Посмотреть сообщение
1. Для конструкции ИТОГИ есть возможность указания доп. параметра ПЕРИОДАМИ.
2. В типовых конфигурациях есть регистр сведений РегламентированныйПроизводственныйКалендарь, можно выбирать дни из него.
Joker_vad, Странно, что Вы не прислушались к верному совету. Если нужны дни, а РС.РегламентированныйПроизводственныйКалендарь отсутствует, создайте ТЗ с датами и включите в источники СКД
0
Joker_vad
Эксперт 1С
475 / 413 / 92
Регистрация: 26.09.2012
Сообщений: 1,854
17.07.2013, 16:56  [ТС] 9
Цитата Сообщение от duk337 Посмотреть сообщение
Странно, что Вы не прислушались к верному совету. Если нужны дни, а РС.РегламентированныйПроизводственныйКалендарь отсутствует, создайте ТЗ с датами и включите в источники СКД
честно не знаю как это сделать. В виртуальной таблице использовать итоги нельзя. А как еще это прикрутить понять не могу
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
17.07.2013, 17:03 10
ЛЕВОЕ СОЕДИНЕНИЕ с датами по периоду День или ещё по какой - это по структуре данных уж соображать. ЕстьНАЛЛ и ВЫБОР КОГДА довершат дело...
1
17.07.2013, 17:03
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2013, 17:03

Сортировка по дням рождения в запросе
Добрый день. SELECT DateSerial(Year(Date()), Month(), Day()) AS Дни, Сотрудники.ДеньРождения...

Разбить некий временной период
Задача, подскажите в каком двигаться на майскле: Есть некий временной интервал t0, t1 : TIME...

Отображение данных в запросе :за период скажем в 3-ое суток
Подскажите, уважаемые форумчане, как реализовать в запросе автоматическое отображение записей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.