|
Заранее извиняюсь за ламерский вопрос, Комплексная, ВзаиморасчетыПокупателей и Взаиморасчеты Поставщиков Запросы по отдельности списал - фурычат, а как в одном запросе написать не знаю, Помогите пожалуйста:
ТекстЗапроса= "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. Подскажите пожалуйста, как сделать групировку Менеджер если это реквизит измерения Контрагент.
|