|   |   | 
| 
 | Не соображу как запрос построить | ☑ | ||
|---|---|---|---|---|
| 0
    
        alexmobile 31.01.14✎ 09:59 | 
        Получаю запросом след. данные:
 ПериодНачало ПериодКонец Сумма Месяцев 01.01.11 01.03.11 500 3 01.01.11 01.06.11 100 6 нужно получить таблицу Месяц сумма 01.01.11 500/3+100/6 01.02.11 500/3+100/6 01.03.11 500/3+100/6 01.04.11 100/6 01.05.11 100/6 01.06.11 100/6 Как это реализовать запросом? | |||
| 1
    
        alexmobile 31.01.14✎ 10:00 | 
        не туда положил. перенесите в v8     | |||
| 2
    
        Ненавижу 1С гуру 31.01.14✎ 10:06 | 
        нужен календарь, например РС "регламентированный производственный календарь" в типовых, тогда легко     | |||
| 3
    
        alexmobile 31.01.14✎ 10:23 | 
        (2) да, все просто.     | |||
| 4
    
        wPa 31.01.14✎ 10:31 | 
        (0) берешь таблицу дат - (2) , к ней таблицу с суммами по дате по <= (если нет остатков - нет движений - то берется последнее)     | |||
| 5
    
        bolobol 31.01.14✎ 10:41 | 
        (2) Непонятно, причём здесь календарь...
 (0) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Месяцы.Месяц, СУММА(Исх.Сумма / Исх.Месяцев) КАК Поле1 ИЗ Месяцы КАК Месяцы ЛЕВОЕ СОЕДИНЕНИЕ Исх КАК Исх ПО Месяцы.Месяц >= Исх.ПериодНачало И Месяцы.Месяц <= Исх.ПериодКонец СГРУППИРОВАТЬ ПО Месяцы.Месяц | |||
| 6
    
        Ненавижу 1С гуру 31.01.14✎ 10:44 | 
        (5) а что такое месяцы?     | |||
| 7
    
        WildSery 31.01.14✎ 10:48 | 
        (6) Это календарь. Но он не при чём.     | |||
| 8
    
        WildSery 31.01.14✎ 10:49 | 
        (5) Условие лучше записывать вот так, это легче читается:
 ПО Месяцы.Месяц МЕЖДУ Исх.ПериодНачало И Исх.ПериодКонец | |||
| 9
    
        bolobol 31.01.14✎ 11:14 | 
        (6) Временная таблица с датами из (0), я её так обозвал по смыслу увиденного в (0).
 (7) У нас, видимо, разные понятия о календаре, см. ответ на (6), а вот (8) - это да. Я, кстати, до сих пор не понимаю, в чём вопрос в (0) был... | |||
| 10
    
        WildSery 31.01.14✎ 11:45 | 
        (9) А по-моему, всё понятно. 1-я табличка - исходные данные. 2-я табличка - что нужно получить.
 Я вижу решение как ВЫБРАТЬ ДАТАВРЕМЯ(2013, 1, 1) КАК ПериодНачало, ДАТАВРЕМЯ(2013, 3, 1) КАК ПериодКонец, 500 КАК Сумма, 3 КАК Месяцев ПОМЕСТИТЬ Таблица1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2013, 1, 1), ДАТАВРЕМЯ(2013, 6, 1), 100, 6; ВЫБРАТЬ РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(Календарь.ДатаКалендаря, МЕСЯЦ) КАК Месяц ПОМЕСТИТЬ Календарь ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Календарь ВНУТРЕННЕЕ СОЕДИНЕНИЕ Таблица1 КАК Т1 ПО (Календарь.ДатаКалендаря МЕЖДУ Т1.ПериодНачало И Т1.ПериодКонец); ВЫБРАТЬ Календарь.Месяц, СУММА(Т1.Сумма / Т1.Месяцев) КАК Сумма ИЗ Таблица1 КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Календарь КАК Календарь ПО (Календарь.Месяц МЕЖДУ Т1.ПериодНачало И Т1.ПериодКонец) СГРУППИРОВАТЬ ПО Календарь.Месяц | |||
| 11
    
        Ненавижу 1С гуру 31.01.14✎ 11:55 | 
        (9) ну все таки календарь таки есть ))     | |||
| 12
    
        bolobol 31.01.14✎ 12:12 | 
        (11) Это если он есть, да и нужно ли так нагружать базу из-за шести известных заранее дат?     | |||
| 13
    
        Ненавижу 1С гуру 31.01.14✎ 12:15 | 
        (12) база безусловно нагрузится     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |