|   |   | 
| 
 | Выборка на начало месяцев (ца) | ☑ | ||
|---|---|---|---|---|
| 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ого числа, а не следующий (будущий).
 Я Вас поняла ). И ведь действительно Вы правы. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |