Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Два регистра взаиморасчетов (число прочтений - 2097 )
ialex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 15. Февраля 2007
Два регистра взаиморасчетов
15. Февраля 2007 :: 06:22
Печать  
Заранее извиняюсь за ламерский вопрос,
Комплексная, ВзаиморасчетыПокупателей и Взаиморасчеты Поставщиков
Запросы по отдельности списал - фурычат, а как в одном запросе написать не знаю, Помогите пожалуйста:

 ТекстЗапроса= "SELECT
     |MAX(VT.Контрагент) as [Контрагент $Справочник.Контрагенты],
     |Sum(VT.ДолгОснНачальныйОстаток) as ДолгОснНачальныйОстаток,
     |Sum(VT.ДолгОснПриход) as ДолгОснПриход,
     |Sum(VT.ДолгОснРасход) as ДолгОснРасход,
     |Sum(ДолгОснНачальныйОстаток) + Sum(ДолгОснПриход) - Sum(ДолгОснРасход) as ДолгОснКонечныйОстаток
   |FROM (      SELECT
     |      $РегИтоги.Контрагент as Контрагент,
     |      $РегИтоги.ДолгОсн as ДолгОснНачальныйОстаток,
     |      0 as ДолгОснПриход,
     |      0 as ДолгОснРасход,
     |      $РегИтоги.ДолгОсн as ДолгОснКонечныйОстаток
     |      FROM
     |            $RegisterTotals.ВзаиморасчетыПокупателей as РегИтоги (nolock)
     |      WHERE
     |            РегИтоги.PERIOD = :ДатаПериодаОстатков~~
     |            AND (1=0
     |            OR $РегИтоги.ДолгОсн<>0)
     |UNION ALL
     |SELECT
     |      $РегДвиж.Контрагент,
     |      $РегДвиж.ДолгОсн*(1-регДвиж.DEBKRED*2),
     |      0,
     |      0,
     |      $РегДвиж.ДолгОсн*(1-регДвиж.DEBKRED*2)
     |      FROM
     |            $Register.ВзаиморасчетыПокупателей as РегДвиж (nolock)
     |      WHERE
     |            (РегДвиж.Date_Time_IDDoc >= :ДатаНачалаОстатков) AND (РегДвиж.Date_Time_IDDoc <= :ДатаКонцаОстатков)
     |UNION ALL      SELECT
     |      $РегПрихРасх.Контрагент as Контрагент,
     |      0 as ДолгОснНачальныйОстаток,
     |      (1-РегПрихРасх.DEBKRED)*$РегПрихРасх.ДолгОсн as ДолгОснПриход,
     |      РегПрихРасх.DEBKRED*$РегПрихРасх.ДолгОсн as ДолгОснРасход,
     |      0 as ДолгОснКонечныйОстаток
     |      FROM
     |            $Register.ВзаиморасчетыПокупателей as РегПрихРасх (nolock)
     |      WHERE
     |            (РегПрихРасх.Date_Time_IDDoc >= :ДатаНачала) AND (РегПрихРасх.Date_Time_IDDoc <= :ДатаКонца~)
     |) as VT
     |,
     |$Справочник.Контрагенты as SprКонтрагент
     |WHERE
     |1=1 AND
     |Контрагент=SprКонтрагент.ID
   |GROUP BY
     |SprКонтрагент.DESCR
     |HAVING
     |Sum(ДолгОснНачальныйОстаток) <> 0 or
     |Sum(ДолгОснПриход) <> 0 or
     |Sum(ДолгОснРасход) <> 0 or
     |Sum(ДолгОснКонечныйОстаток) <> 0
     |ORDER BY
     |SprКонтрагент.DESCR";    
     
     
     
     
     RS.SetTextParam("ДатаНачала", ДатаНачала);
     RS.SetTextParam("ДатаКонца", ДатаКонца);
     RS.SetTextParam("ДатаПериодаОстатков",AddMonth(BegOfMonth(ДатаНачала),-1));
     RS.SetTextParam("ДатаНачалаОстатков", BegOfMonth(ДатаНачала));
     RS.SetTextParam("ДатаКонцаОстатков", ДатаКонца);
     ТЗ=RS.ВыполнитьИнструкцию(ТекстЗапроса);
2. Подскажите пожалуйста, как сделать групировку Менеджер если это реквизит измерения Контрагент.
  
Наверх
 
IP записан
 
ialex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 15. Февраля 2007
Re: Два регистра взаиморасчетов
Ответ #1 - 15. Февраля 2007 :: 13:37
Печать  
Может я как то сумбурно спросил, тогда извините, структура обоих регистров одинакова.
Хелп плииз.
  
Наверх
 
IP записан
 
NewIn1C
Junior Member
**
Отсутствует



Сообщений: 35
Зарегистрирован: 27. Декабря 2006
Re: Два регистра взаиморасчетов
Ответ #2 - 15. Февраля 2007 :: 14:36
Печать  
В основном запросе:

$SprКонтрагент.Менеджер as [Менеджер $Справочник.Сотрудники или Строка]

потом
в GROUP BY ..., $SprКонтрагент.Менеджер
  
Наверх
 
IP записан
 
ialex
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 3
Зарегистрирован: 15. Февраля 2007
Re: Два регистра взаиморасчетов
Ответ #3 - 16. Февраля 2007 :: 07:02
Печать  
NewIn1C писал(а) 15. Февраля 2007 :: 14:36:
В основном запросе:

$SprКонтрагент.Менеджер as [Менеджер $Справочник.Сотрудники или Строка]

потом
в GROUP BY ..., $SprКонтрагент.Менеджер

Спасибо огромное за помощь по группировке,

может кто то подскажет как еще второй регистр прикрутить к запросу
Как будет выглядеть эта конструкция:
тавщиков.Контрагент;
...
|ДолгПокупОсн=Регистр.ВзаиморасчетыПокупателей.ДолгОсн;
|ДолгПостОсн=Регистр.ВзаиморасчетыПоставщиков.ДолгОсн;
...
|Функция КонДолгОсн = КонОст(ДолгПокупОсн);
|Функция КонДолгПостОсн = КонОст(ДолгПостОсн);
...

КонОбщДолг = Запрос.КонДолгОсн+Запрос.КонДолгПостОсн;



  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Два регистра взаиморасчетов
Ответ #4 - 16. Февраля 2007 :: 14:23
Печать  
Наверное как в твоем примере выше лучше (через юнион)
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать