|   |   | 
| 
 | Интервалы дат в запросе в соответствии с таблицей значений... | ☑ | ||
|---|---|---|---|---|
| 0
    
        МикаМ 21.02.13✎ 13:43 | 
        Подскажите пожалуйста может кто-то сталкивался с такой проблемой
  Есть следующий Запрос в котором в "Разница" получается кол-во дней между выпиской документа и оплатой... " ВЫБРАТЬ Взаиморасчеты.Контрагент КАК Контрагент, Взаиморасчеты.ДоговорКонтрагента.Подразделение КАК Подразделение, СУММА(Взаиморасчеты.СуммаВзаиморасчетовОборот) КАК Сумма, Взаиморасчеты.ДоговорКонтрагента КАК ДоговорКонтрагента, РАЗНОСТЬДАТ(Взаиморасчеты.ДокументРасчетовСКонтрагентом.Дата, Взаиморасчеты.Период, ДЕНЬ) КАК Разница, Взаиморасчеты.Регистратор ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(, , Регистратор, ) КАК Взаиморасчеты ГДЕ (Взаиморасчеты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее ИЛИ Взаиморасчеты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер) СГРУППИРОВАТЬ ПО Взаиморасчеты.Контрагент, Взаиморасчеты.ДоговорКонтрагента.Подразделение, Взаиморасчеты.ДоговорКонтрагента, Взаиморасчеты.Регистратор, Взаиморасчеты.Период, РАЗНОСТЬДАТ(Взаиморасчеты.ДокументРасчетовСКонтрагентом.Дата, Взаиморасчеты.Период, ДЕНЬ) УПОРЯДОЧИТЬ ПО Подразделение, Контрагент, ДоговорКонтрагента" Так же есть таблица значений ТЗ - со значениями интервалов 7, 14, 21... Вопрос: Как получить на выходе из запроса чтоб результат можно было вывеси от 1 до 7 дней, от 8 до 14, от 15 до 21 и от 21 и больше... По кол-ву дней - "Разница" - вывести - абсолютно без проблем - вопрос в том как разделить выводимые данные на необходимые интервалы? То есть получается что ТЗ нужно подключить к запросу и разбивать данные на интервалы в зависимости от указанных в таблице значений... Прописать интервалы непосредственно в запросе - делал, но вся проблема в том что и они сами и их кол-во может изменяться... | |||
| 1
    
        SMakcik 21.02.13✎ 13:47 | 
        Запиши интервалы или в таблицу значений либо в регистр сведений и выводи как угодно     | |||
| 2
    
        МикаМ 21.02.13✎ 13:48 | 
        Так они уже в таблице значений - вопрос том как это все подключить верно к запросу...     | |||
| 3
    
        SMakcik 21.02.13✎ 13:49 | 
        Выборкой из таблицы значений и соеденением     | |||
| 4
    
        МикаМ 21.02.13✎ 13:49 | 
        ТЗ - Таблица значений
  7 14 21 | |||
| 5
    
        SMakcik 21.02.13✎ 13:50 | 
        Ну а добавить две колонки не судьба?     | |||
| 6
    
        МикаМ 21.02.13✎ 13:50 | 
        "Выборкой из таблицы значений и соеденением" - вот именно это я и не знаю как бы сделать...     | |||
| 7
    
        МикаМ 21.02.13✎ 13:51 | 
        Можно хоть 5 колонок - только как их в запросе обрабатывать?     | |||
| 8
    
        SMakcik 21.02.13✎ 13:51 | 
        Запрос = Новый Запрос("
  |ВЫБРАТЬ | тз.Наименование, | тз.НачалоИнтервала, | тз.КонецИнтервала |ПОМЕСТИТЬ тз |ИЗ | &тз КАК тз; | |||
| 9
    
        МикаМ 21.02.13✎ 13:57 | 
        а как обьединить с основным запросом? подскажи плиз...     | |||
| 10
    
        SMakcik 21.02.13✎ 14:00 | 
        Блин ну за вас еще надо написать всю программу     | |||
| 11
    
        SMakcik 21.02.13✎ 14:01 | 
        Соединение типа >= И <= не слыхал     | |||
| 12
    
        SMakcik 21.02.13✎ 14:08 | 
        т.е ЛЕВОЕ СОЕДИНЕНИЕ .... ПО Разница > ТЗ.НачалоИнтервала И Разница <= ТЗ.КонецИнтервала     | |||
| 13
    
        МикаМ 21.02.13✎ 14:28 | 
        Спасибо, счас буду пробовать...     | |||
| 14
    
        Xatori 21.02.13✎ 15:08 | 
        Из того как я понял задачу, я бы добавил колонку с Интервалами и туда присваивал бы значения 7,14,21 через Выбор Когда тогда, и потом подвёл итоги и вуаля, отсортированные записи и перебирать потом удобно.     | |||
| 15
    
        МикаМ 21.02.13✎ 15:36 | 
        но мы изначально не знаем сколько будет значений... как делать поиск через выбор Когда по Таблице значений?     | |||
| 16
    
        Xatori 21.02.13✎ 15:42 | 
        ну господи, сделай запрос динамическим, перебирай свою таблицу и добавляй в запрос Выборов сколько надо))     | |||
| 17
    
        МикаМ 21.02.13✎ 15:43 | 
        низзя динамическим - он у мну в СКД живет )))     | |||
| 18
    
        Xatori 21.02.13✎ 15:44 | 
        вынь из СКД)) лепи ТЗ нужную и в СКД передавай     | |||
| 19
    
        Xatori 21.02.13✎ 15:45 | 
        кстати там и итоги сможешь подвести     | |||
| 20
    
        МикаМ 21.02.13✎ 15:48 | 
        тоже, конечно вариант, но лепить СКД вручную - не так красиво как сделать грамотно запрос - в любом случае если по другому ничего не выйдет, то так и придется делать...     | |||
| 21
    
        Xatori 21.02.13✎ 15:49 | 
        А есть максимально допустимое число значений в ТЗ?     | |||
| 22
    
        Xatori 21.02.13✎ 15:56 | 
        Кстати в запросе ты обращаешься к ВТ Регистра накопления, Какой смысл дополнительно группировать записи, если изначально ты их получаешь максимально сгруппированными.     | |||
| 23
    
        МикаМ 21.02.13✎ 15:58 | 
        может штук 10 - больше врядли кто-то решится - хотя я их думаю брать из справочника "НастройкаИнтервалов" есть у мну такой в конфе - теоретически в нем кол-во интервалов ограничивается только количеством строк в таблице значения...     | |||
| 24
    
        МикаМ 21.02.13✎ 16:00 | 
        Изначально они сгрупированны не по тем интервалам дат которые мне нужны     | |||
| 25
    
        Xatori 21.02.13✎ 16:12 | 
        Тогда тут мне кажется без вариантов, делай динамический запрос, и в СКД, другое мне что то ничего не приходит в голову))
  Хотя есть мыслишка воспользоваться Шаманом и бубном:) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |