|
Выборка на начало месяцев (ца) | ☑ | ||
---|---|---|---|---|
0
falselight
24.11.16
✎
06:20
|
В РС, данные на каждый день.
Если я в период выборки ставлю 6 месяцев, можно ли в запросе задать что бы он отобрал только первые числа каждого месяца??? || ВЫБРАТЬ КурсыВалют.Период КАК Период, КурсыВалют.Валюта КАК Валюта, КурсыВалют.Курс КАК Курс, КурсыВалют.Валюта.Наименование КАК ВалютаНаименование ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ &НачДата И &КонДата УПОРЯДОЧИТЬ ПО ВалютаНаименование, Период |
|||
1
Romyr
24.11.16
✎
06:25
|
в одном запросе скорее всего нет.
Запрос в цикл и отбирать помесячно не предлагать? |
|||
2
falselight
24.11.16
✎
06:26
|
(1) Я так попробовал. Пойдет?
ВЫБРАТЬ КурсыВалют.Период КАК Период, КурсыВалют.Валюта КАК Валюта, КурсыВалют.Курс КАК Курс, КурсыВалют.Валюта.Наименование КАК ВалютаНаименование, ДЕНЬ(КурсыВалют.Период) КАК День ПОМЕСТИТЬ ВТ_День ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ &НачДата И &КонДата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_День.Период КАК Период, ВТ_День.Валюта КАК Валюта, ВТ_День.Курс КАК Курс, ВТ_День.ВалютаНаименование КАК ВалютаНаименование ИЗ ВТ_День КАК ВТ_День ГДЕ ВТ_День.День = 1 УПОРЯДОЧИТЬ ПО ВалютаНаименование |
|||
3
Рэйв
24.11.16
✎
06:30
|
ВЫБРАТЬ
КурсыВалютСрезПоследних.Период, КурсыВалютСрезПоследних.Валюта ИЗ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних ГДЕ НАЧАЛОПЕРИОДА(КурсыВалютСрезПоследних.Период, МЕСЯЦ) = НАЧАЛОПЕРИОДА(КурсыВалютСрезПоследних.Период, ДЕНЬ) |
|||
4
Mariiaki
24.11.16
✎
06:31
|
А если:
ГДЕ ДЕНЬ(КурсыВалют.Период)=1? |
|||
5
Рэйв
24.11.16
✎
06:32
|
+(3) Не уверен насчет срезПоследних. Помоему нужно без него
|
|||
6
Romyr
24.11.16
✎
06:40
|
(2) хммм... хорошая идея. И? Работает?
|
|||
7
Mariiaki
24.11.16
✎
06:47
|
(4) т.е.
ВЫБРАТЬ КурсыВалют.Период КАК Период, КурсыВалют.Валюта КАК Валюта, КурсыВалют.Курс КАК Курс, КурсыВалют.Валюта.Наименование КАК ВалютаНаименование ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ &НачДата И &КонДата И ДЕНЬ(КурсыВалют.Период)=1 УПОРЯДОЧИТЬ ПО ВалютаНаименование, Период |
|||
8
Mariiaki
24.11.16
✎
08:09
|
(0) А если первая запись в месяце не первым днем, то
ВЫБРАТЬ РАЗЛИЧНЫЕ
|
|||
9
falselight
24.11.16
✎
08:20
|
(8) Начало месяца, первым числом же всегда?!!!
|
|||
10
Mariiaki
24.11.16
✎
08:24
|
(9) Начало месяца действительно первое число.
Но первая запись в РС может быть и 2 и 28 числа. |
|||
11
d546
24.11.16
✎
08:34
|
(10) а почему тогда сделан выбор в пользу срез первых, а не срез последних?
|
|||
12
Mariiaki
24.11.16
✎
08:34
|
(3) Этот вариант лучше, только без срезПоследних
|
|||
13
Mariiaki
24.11.16
✎
08:37
|
(11) не использовался срез, но мой вариант не к чему, когда можно как в (3).
Проглядела сначала. |
|||
14
d546
24.11.16
✎
08:55
|
(13) у вас в запросе, по сути, реализован принцип СрезПервых, но в урезанном виде в пределах месяца без использование таблицы СрезПервых.
по мне, вообще лучше для получения периодов, первая ВТ в вашем запросе, использовать производственный календарь. а дальше срез последних по периодам (реализуется без использования таблицы СрезПоследних, на мисте много таких статей). это будет универсально. |
|||
15
Mariiaki
24.11.16
✎
08:55
|
(13) Хотя нет, если записи нет первого числа то месяц выпадает из выборки.
Но это уже смотря какая задача стоит. Если только 1ое число то да, если первые записи в месяце то (8) |
|||
16
d546
24.11.16
✎
08:56
|
но тут все зависит от поставленной задачи
|
|||
17
Mariiaki
24.11.16
✎
08:59
|
(14) а пример можно?
|
|||
18
d546
24.11.16
✎
09:05
|
(17) Срез последних на каждую дату в запросе Книга знаний: Срез последних на каждую дату в запросе
а какого рода пример надо? |
|||
19
Mariiaki
24.11.16
✎
09:11
|
(18) действительно все от задачи зависит.
Если нужны первые записи, то вроде логично что СрезПервых. пример со СрезПоследних для получения первых записей. |
|||
20
d546
24.11.16
✎
10:07
|
(19) зачем получать срез первых через срез последних?
просто для расчетов с валютой более актуален срез последних (курс на прошедшую дату), чем срез первых (курс на будущую дату) [code] ВЫБРАТЬ РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(КурсыВалют.Период, МЕСЯЦ) КАК НачалоМесяца ПОМЕСТИТЬ ВТПериоды ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Периоды.НачалоМесяца, МАКСИМУМ(КурсыВалют.Период) КАК ПериодКурса, КурсыВалют.Валюта КАК Валюта ПОМЕСТИТЬ ВТПериодКурса ИЗ ВТПериоды КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО Периоды.НачалоМесяца >= КурсыВалют.Период СГРУППИРОВАТЬ ПО Периоды.НачалоМесяца, КурсыВалют.Валюта ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПериодКурса.НачалоМесяца КАК НачалоМесяца, ВТПериодКурса.Валюта КАК Валюта, ВТПериодКурса.ПериодКурса КАК ПериодКурса, КурсыВалют.Курс, КурсыВалют.Кратность ИЗ ВТПериодКурса КАК ВТПериодКурса ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО ВТПериодКурса.Валюта = КурсыВалют.Валюта И ВТПериодКурса.ПериодКурса = КурсыВалют.Период УПОРЯДОЧИТЬ ПО НачалоМесяца, Валюта, ПериодКурса [/code] |
|||
21
Mariiaki
24.11.16
✎
10:34
|
(20) т.е. если 1ого числа нет курса, то действует последний введенный до 1ого числа, а не следующий (будущий).
Я Вас поняла ). И ведь действительно Вы правы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |