Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема запрос с детализацией по двум параметрам, 1с sql (число прочтений - 2102 )
temrmal
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
запрос с детализацией по двум параметрам, 1с sql
13. Января 2011 :: 08:46
Печать  
Доброго всем! Каким образом можно из регистра получить результаты по ДВУМ ВРЕМЕННЫМ ИЗМЕРЕНИЯМ, т.е. по дням и по месяцам ОДНОВРЕМЕННО? есть ли пример? спасибо заранее!
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #1 - 13. Января 2011 :: 08:54
Печать  
Ну можно через union попробовать ...
  
Наверх
 
IP записан
 
temrmal
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #2 - 13. Января 2011 :: 09:05
Печать  
да я только начал с прямыми запросами))) что это такое?
вот мое:
|SELECT НачислениеПроцентовОстаткиОбороты.Договор [Договор $Справочник.Договоры]
|, NullIf(НачислениеПроцентовОстаткиОбороты.Период, '17530101') Период
|,SumНачислениеПроцентовОстаткиОбороты.СуммаНачальныйОстаток) СуммаСуммаНачальныйОстаток
|, Sum(НачислениеПроцентовОстаткиОбороты.СуммаПриход) СуммаСуммаПриход
|, Sum(НачислениеПроцентовОстаткиОбороты.СуммаРасход) СуммаСуммаРасход
|, Sum(НачислениеПроцентовОстаткиОбороты.СуммаКонечныйОстаток) СуммаСуммаКонечныйОстаток
|FROM $РегистрОстаткиОбороты.НачислениеПроцентов(:НачДата,
|            :КонДата,
|            День,
|            ДвиженияИГраницыПериода,,
|            (Договор IN (:ВыбДоговор)),
|            Договор,) AS НачислениеПроцентовОстаткиОбороты
|GROUP BY НачислениеПроцентовОстаткиОбороты.Договор
|      , НачислениеПроцентовОстаткиОбороты.Период
|";
рс.УстановитьТекстовыйПараметр("НачДата", НачДата);
рс.УстановитьТекстовыйПараметр("КонДата", КонДата);
рс.УстановитьТекстовыйПараметр("ВыбДоговор", ВыбДоговор);
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #3 - 13. Января 2011 :: 10:58
Печать  
temrmal писал(а) 13. Января 2011 :: 09:05:
да я только начал с прямыми запросами))) что это такое?
вот мое:
|SELECT НачислениеПроцентовОстаткиОбороты.Договор [Договор $Справочник.Договоры]
|, NullIf(НачислениеПроцентовОстаткиОбороты.Период, '17530101') Период
|,SumНачислениеПроцентовОстаткиОбороты.СуммаНачальныйОстаток) СуммаСуммаНачальныйОстаток
|, Sum(НачислениеПроцентовОстаткиОбороты.СуммаПриход) СуммаСуммаПриход
|, Sum(НачислениеПроцентовОстаткиОбороты.СуммаРасход) СуммаСуммаРасход
|, Sum(НачислениеПроцентовОстаткиОбороты.СуммаКонечныйОстаток) СуммаСуммаКонечныйОстаток
|FROM $РегистрОстаткиОбороты.НачислениеПроцентов(:НачДата,
|            :КонДата,
|            День,
|            ДвиженияИГраницыПериода,,
|            (Договор IN (:ВыбДоговор)),
|            Договор,) AS НачислениеПроцентовОстаткиОбороты
|GROUP BY НачислениеПроцентовОстаткиОбороты.Договор
|      , НачислениеПроцентовОстаткиОбороты.Период
|";
рс.УстановитьТекстовыйПараметр("НачДата", НачДата);
рс.УстановитьТекстовыйПараметр("КонДата", КонДата);
рс.УстановитьТекстовыйПараметр("ВыбДоговор", ВыбДоговор);


Ну, это по дням, если нужно по месяцам -
union
твои поля
|FROM $РегистрОстаткиОбороты.НачислениеПроцентов(:НачДата,
|            :КонДата,
|            месяц,
|            ДвиженияИГраницыПериода,,
|            (Договор IN (:ВыбДоговор)),
|            Договор,) AS НачислениеПроцентовОстаткиОбороты
  
Наверх
 
IP записан
 
temrmal
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #4 - 13. Января 2011 :: 13:38
Печать  
хм, не догнал немного)))
во втором варианте будет только по месяцам, а мне надо одновременно и по дням и по месяцам.
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #5 - 13. Января 2011 :: 13:51
Печать  
Примерно так:
Код
Выбрать все
|SELECT
|	TMP.Договор AS [Договор $Справочник.Договоры],
|	TMP.Период AS Период,
|	TMP.СуммаСуммаНачальныйОстаток AS СуммаСуммаНачальныйОстаток,
|	TMP.СуммаСуммаПриход AS СуммаСуммаПриход,
|	TMP.СуммаСуммаРасход AS СуммаСуммаРасход,
|	TMP.СуммаСуммаКонечныйОстаток AS СуммаСуммаКонечныйОстаток
|FROM
|(
|SELECT
|	НачислениеПроцентовОстаткиОбороты.Договор AS [Договор],
|	NullIf(НачислениеПроцентовОстаткиОбороты.Период, '17530101') AS Период,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаНачальныйОстаток) AS СуммаСуммаНачальныйОстаток,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаПриход) AS СуммаСуммаПриход,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаРасход) AS СуммаСуммаРасход,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаКонечныйОстаток) AS СуммаСуммаКонечныйОстаток
|FROM
|	$РегистрОстаткиОбороты.НачислениеПроцентов(:НачДата,
|		:КонДата,
|		Месяц,
|		ДвиженияИГраницыПериода,,
|		(Договор IN (:ВыбДоговор)),
|		Договор,) AS НачислениеПроцентовОстаткиОбороты
|GROUP BY
|	НачислениеПроцентовОстаткиОбороты.Договор,
|	НачислениеПроцентовОстаткиОбороты.Период
|UNION ALL
|SELECT
|	НачислениеПроцентовОстаткиОбороты.Договор AS [Договор],
|	NullIf(НачислениеПроцентовОстаткиОбороты.Период, '17530101') AS Период,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаНачальныйОстаток) AS СуммаСуммаНачальныйОстаток,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаПриход) AS СуммаСуммаПриход,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаРасход) AS СуммаСуммаРасход,
|	Sum(НачислениеПроцентовОстаткиОбороты.СуммаКонечныйОстаток) AS СуммаСуммаКонечныйОстаток
|FROM
|	$РегистрОстаткиОбороты.НачислениеПроцентов(:НачДата,
|		:КонДата,
|		День,
|		ДвиженияИГраницыПериода,,
|		(Договор IN (:ВыбДоговор)),
|		Договор,) AS НачислениеПроцентовОстаткиОбороты
|GROUP BY
|	НачислениеПроцентовОстаткиОбороты.Договор,
|	НачислениеПроцентовОстаткиОбороты.Период
|) AS TMP
|ORDER BY
|	TMP.Договор,
|	TMP.Период
 

  
Наверх
IP записан
 
U_zer
Экс-Участник


Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #6 - 14. Января 2011 :: 07:56
Печать  
Вот, именно так!!
Только group by я бы наверх вынес.
  
Наверх
 
IP записан
 
temrmal
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 42
Зарегистрирован: 13. Января 2011
Re: запрос с детализацией по двум параметрам, 1с sql
Ответ #7 - 14. Января 2011 :: 11:43
Печать  
Понял, спасибо! А в 1с8 подсказали еще такой вариант

ВЫБРАТЬ
   НАЧАЛОПЕРИОДА(Период, МЕСЯЦ) КАК НачалоМесяца,
   НАЧАЛОПЕРИОДА(Период, ДЕНЬ) КАК НачалоДня,
   Регистратор,
   Сумма
ИЗ

ну и по аналогии
Select
$НачалоПериода.День(....
$НачалоПериода.Месяц(...
а вот что дальше писать не понял - все перебрал уже
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать