Это на 1С++: | SELECT | РегОстатки.Товар as идТовар, | РегОстатки.Склад as идСклад, | РегОстатки.ОстатокТовараОстаток as Остаток | FROM | $РегистрОстатки.ОстаткиТоваров(:ДатаКон~, | inner join $Справочник.Номенклатура as СпрНоменклатура (nolock) on СпрНоменклатура.id = Товар | inner join $Справочник.МестаХранения as СпрСклады (nolock) on СпрСклады.id = Склад, | (Фирма='"+МД.ЗначениеВСтрокуБД(ПустаяФирма)+"') AND (СпрНоменклатура.IsFolder=2)" +filter_vl("СпрНоменклатура",ВыбТовары) +filter_vl("СпрСклады",ВыбСклад)+" |, | (Фирма, Товар, Склад), (ОстатокТовара)) as РегОстатки А это выдал парсер: SELECT РегОстатки.Товар as идТовар, РегОстатки.Склад as идСклад, РегОстатки.ОстатокТовараОстаток as Остаток FROM ( select rr99_vt.sp3603 as Фирма, rr99_vt.sp101 as Товар, rr99_vt.sp100 as Склад, sum(rr99_vt.sp102) as ОстатокТовараОстаток from ( select rg99_vt.sp3603, rg99_vt.sp101, rg99_vt.sp100, rg99_vt.sp102 from rg99 as rg99_vt (nolock) inner join sc33 as СпрНоменклатура (nolock) on СпрНоменклатура.id = rg99_vt.sp101 inner join sc31 as СпрСклады (nolock) on СпрСклады.id = rg99_vt.sp100 where rg99_vt.period={d '2012-09-01'} and ((rg99_vt.sp3603=' 0 ') AND (СпрНоменклатура.IsFolder=2) AND СпрНоменклатура.ID IN (' 785ЦБ ',' 3A2ЦБ ')) union all select ra99_vt.sp3603, ra99_vt.sp101, ra99_vt.sp100, case ra99_vt.debkred when 0 then ra99_vt.sp102 else -ra99_vt.sp102 end from ra99 as ra99_vt (nolock) inner join _1sjourn as j99_vt (nolock) on j99_vt.iddoc = ra99_vt.iddoc inner join sc33 as СпрНоменклатура (nolock) on СпрНоменклатура.id = ra99_vt.sp101 inner join sc31 as СпрСклады (nolock) on СпрСклады.id = ra99_vt.sp100 where j99_vt.date_time_iddoc > '20121001' and j99_vt.date_time_iddoc < '20121016Z' and j99_vt.rf99 = 0x1 and ((ra99_vt.sp3603=' 0 ') AND (СпрНоменклатура.IsFolder=2) AND СпрНоменклатура.ID IN (' 785ЦБ ',' 3A2ЦБ ')) ) as rr99_vt group by rr99_vt.sp3603, rr99_vt.sp101, rr99_vt.sp100 having sum(rr99_vt.sp102) <> 0 ) as РегОстатки //"having sum(rr99_vt.sp102) <> 0" уже убирал
|