|     0
            - 26.06.2012 - 21:24
           |  Всем привет. Вот не могу никак придумать, возможно ли одним запросом выбрать обороты по регистру за некий период, охватывающий, к примеру, несколько месецев так, чтобы можно было получить значения по первым N дням каждого месяца, попавшего в период запроса? Либо придется делить период на куски, по каждому делать запрос, выгружать к ТЗ, склеивать ТЗ, ну а потом извращаться с ее выводом (к тому же еще и группировок прочих куча). Второй вариант в принципе решаем, но хотелось бы как-то одним что-ли махом!? |   |  
|     1
            - 26.06.2012 - 21:37
           |  пример напиши |   |  
|     2
            - 26.06.2012 - 21:48
           |     
			
			
                ну был бы пример, не спросил бы :) ноги растут от отчета типовой торговли: Динамика продаж ТМЦ, только надо анализировать не помесячно, а по, например первым 10 дням каждого месяца. Допустим, Период с Дата1 по дата2; Номенклатура=Регистр.Продажи.Номенклатура; Колво=Регистр.Продажи.количество; Функция Продаж=Сумма(Колво); Группировка Месяц; Группировка Номенклатура; -это даст нам помесячные объемы, а вот как получить за каждые 10 дней каждого из месяцев, попадающих в диапазон Дата1-Дата2?  |    |  
|     3
            - 27.06.2012 - 02:01
           |  Выбираешь по дням, из даты вытаскиваешь номер дня в месяце и делаешь отбор по этому полю от 1 до 10. |   |  
|     4
            - 27.06.2012 - 07:49
           |  так это 7-ка? |   |  
|     5
            - 27.06.2012 - 09:21
           |  Можно сделать группировку день и анализировать смену месяца. Ну и выводить сколько надо дней. |   |  
|     6
            - 27.06.2012 - 12:45
           |     
			
			
                (4) да, это семерка, к сожалению :) (3)"делаешь отбор от 1 до 10", это как? в самом запросе? (5)выводить то надо в совокупности, не по дням. вот думаю в сторону Когда двигаться и в запросе несколько функций суммирования использовать.  |    |  
|     7
            - 27.06.2012 - 13:27
           |     
			
			
                Механизм примерно такой. Делаешь запрос с группировкой день. Выгружаешь его в таблицу. Дальше лохматишь эту таблицу. Оставляешь количество дней, которое надо (в выборке анализируешь смену месяца). Нужные строки перебрасываешь в другую тз или же наоборот удаляшь ненужные строки из таблицы запроса. Ну а дальше дело техники. Группируешь готовую таблицу как надо и на печать ее.  |    |  
|     8
            - 27.06.2012 - 13:39
           |  7-Buzz > Ужас... |   |  
|     9
            - 27.06.2012 - 13:41
           |  (8) Придумай что-нибудь умней. Мы посмотрим. |   |  
|     10
            - 27.06.2012 - 13:49
           |     
			
			
                9-Buzz > С первого по восьмое число: Where SUBSTRING(DATE_TIME_IDDOC, 7, 2) >= '01' AND SUBSTRING(DATE_TIME_IDDOC, 7, 2) <= '08'  |    |  
|     11
            - 27.06.2012 - 13:59
           |  (10) Ну если такая штука прокатит в обычном запросе, то да, можно и условие закатать. |   |  
|     12
            - 27.06.2012 - 14:04
           |  11-Buzz > В обычном прямом запросе - еще как прокатит. |   |  
|     13
            - 27.06.2012 - 14:08
           |     
			
			
                Про SQL здесь вроде не написано.  А вот что-то типа ДатаДень(Дата) в запросе покатит или нет не помню.  |    |  
|     14
            - 27.06.2012 - 14:15
           |     
			
			
                13-Buzz >  Прямые запросы можно делать и на dbf базе. А в данном случае все-таки лучше будет просто в запросе внешнюю функцию использовать, как это не печально..  |    |  
|     15
            - 27.06.2012 - 15:43
           |     
			
			
                (7) Примерно так и думал, хоть и понимаю, что это действительно ну не то, чтобы ужас, но грустно :) (10)мысль понятна, прямые запросы уже юзал, кое-что получалось, завтра буду думать. (14) По поводу внешней функции - имеется в виду наверно суммирование по функции, в функцию передаем день, и если день >N, то возвращаем 0,а группировка всеравно по месяцу. Точно, наверно так прокатит. а что печального, поясните?  |    |  
|     16
            - 28.06.2012 - 13:37
           |     
			
			
                Что-то туплю, Функция продаж=Сумма(Моясумма(Запрос.Колво)); Функция Моясумма(Значение) Возврат Значение КонецЦункция; так примерно должно выглядеть?  |    |  
|     17
            - 28.06.2012 - 15:08
           |  15-kupreeff > В условие функцию воткнуть. Передавать в нее дату. И пусть она возвращает 1, если попали в период и 0 - если не попали. |   |  
|     18
            - 28.06.2012 - 18:03
           |  (17) замечательно! Спасибо за подсказку! И ничего печального, работает :) |   |  
 Интернет-форум Краснодарского края и Краснодара |