ВЫБРАТЬ
РегОбщ.Период КАК [Период $Дата],РегОбщ.Товар КАК [Товар $Справочник.Товары],РегОбщ.Производитель КАК [Производитель $Справочник.Производитель],
Максимум(РегОбщ.СуммаСебестН) КАК [СуммаСебестН $число],
Максимум(РегОбщ.КолПрихН) КАК [КолПрихН $число],
Максимум(РегОбщ.СуммаПродСтН) КАК [СуммаПродСтН $число],
Сумма(РегОбщ.СуммаСебестП) КАК [СуммаСебестП $число],
Сумма(РегОбщ.КолПрихП) КАК [КолПрихП $число], 
Сумма(РегОбщ.СуммаПродСтП) КАК [СуммаПродСтП $число],
Сумма(РегОбщ.СуммаСебестР) КАК [СуммаСебестР $число],
Сумма(РегОбщ.КолПрихР) КАК [КолПрихР $число],   
Сумма(РегОбщ.СуммаПродСтР) КАК [СуммаПродСтР $число],
Максимум(РегОбщ.СуммаСебестК) КАК [СуммаСебестК $число],
Максимум(РегОбщ.КолПрихК) КАК [КолПрихК $число],
Максимум(РегОбщ.СуммаПродСтК) КАК [СуммаПродСтК $число]
ИЗ (
ВЫБРАТЬ 
РегОст.НачалоПериода КАК Период,РегОст.измТовар КАК Товар,$СпрТ.спрПроизводитель КАК Производитель,
РегОст.ресСуммаБазНачальныйОстаток СуммаСебестН,
РегОст.ресКоличествоНачальныйОстаток КолПрихН,
РегОст.ресСуммаБазПродНачальныйОстаток СуммаПродСтН,
0 СуммаСебестП,
0 КолПрихП,
0 СуммаПродСтП,
0 СуммаСебестР,
0 КолПрихР,
0 СуммаПродСтР,
РегОст.ресСуммаБазКонечныйОстаток СуммаСебестК,
РегОст.ресКоличествоКонечныйОстаток КолПрихК,
РегОст.ресСуммаБазПродКонечныйОстаток СуммаПродСтК
 ИЗ $РегистрОстаткиОбороты.Товары(:ДатаНач, :ДатаКон~, Месяц ДОПОЛНЕНИЕ, ДвиженияИГраницыПериода, $СпрТ.спрПроизводитель = :ВыбПроизводитель, (измТовар),(ресКоличество,ресСуммаБаз,ресСуммаБазПрод), ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК СпрТ $nolock ПО $СпрТ.ТекущийЭлемент = измТовар) РегОст
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК СпрТ $nolock ПО СпрТ.id = РегОст.измТовар

ГДЕ (РегОст.ресСуммаБазНачальныйОстаток <> 0 ИЛИ РегОст.ресКоличествоНачальныйОстаток<>0 ИЛИ РегОст.ресСуммаБазКонечныйОстаток <> 0 ИЛИ РегОст.ресКоличествоКонечныйОстаток<>0)
ОБЪЕДИНИТЬ
ВЫБРАТЬ
НачалоПериода(Left(РегОбор.ПозицияДокумента,8),Месяц),РегОбор.измТовар,$СпрТ.спрПроизводитель,
0,
0,
0,
Case when РегОбор.ВидДокумента <> $ВидДокумента.Перемещение then РегОбор.ресСуммаБазПриход else 0 end,
Case when РегОбор.ВидДокумента <> $ВидДокумента.Перемещение then РегОбор.ресКоличествоПриход else 0 end, 
Case when РегОбор.ВидДокумента <> $ВидДокумента.Перемещение then РегОбор.ресСуммаБазПродПриход else 0 end,
Case when РегОбор.ВидДокумента <> $ВидДокумента.Перемещение then РегОбор.ресСуммаБазРасход else 0 end,
Case when РегОбор.ВидДокумента <> $ВидДокумента.Перемещение then РегОбор.ресКоличествоРасход else 0 end,   
Case when РегОбор.ВидДокумента <> $ВидДокумента.Перемещение then РегОбор.ресСуммаБазПродРасход else 0 end,
0,
0,
0
 ИЗ $РегистрОстаткиОбороты.Товары(:ДатаНач, :ДатаКон~, Документ, ДвиженияИГраницыПериода, $СпрТ.спрПроизводитель = :ВыбПроизводитель, (измТовар),(ресКоличество,ресСуммаБаз,ресСуммаБазПрод), ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары КАК СпрТ $nolock ПО $СпрТ.ТекущийЭлемент = измТовар) РегОбор
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Товары СпрТ $nolock ПО СпрТ.id = РегОбор.измТовар


) КАК РегОбщ

СГРУППИРОВАТЬ РегОбщ.Период,РегОбщ.Товар,РегОбщ.Производитель 
ИМЕЮЩИЕ (Максимум(РегОбщ.СуммаСебестН) <> 0 ИЛИ Максимум(РегОбщ.КолПрихН)<>0 ИЛИ Сумма(РегОбщ.СуммаСебестП) <> 0 ИЛИ Сумма(РегОбщ.КолПрихП)<>0 ИЛИ Сумма(РегОбщ.СуммаСебестР)<>0 ИЛИ Сумма(РегОбщ.КолПрихР)<>0 ИЛИ Максимум(РегОбщ.СуммаСебестК) <> 0 ИЛИ Максимум(РегОбщ.КолПрихК)<>0) 

ПрямойЗапрос::РегистрОстаткиОбороты_SQL(АссоциативныйВектор ВекторВыражения=) : ПрямойЗапрос::ВыполнитьЗапрос(Строка ТекстЗапроса=create table #vt_totalrg_99_17578064(
	НачалоПериода datetime
	,измТовар char(9)
	,ресКоличествоНачальныйОстаток numeric(38,2)
	,ресКоличествоПриход numeric(38,2)
	,ресКоличествоРасход numeric(38,2)
	,ресКоличествоОборот numeric(38,2)
	,ресКоличествоКонечныйОстаток numeric(38,2)
	,ресСуммаБазНачальныйОстаток numeric(38,2)
	,ресСуммаБазПриход numeric(38,2)
	,ресСуммаБазРасход numeric(38,2)
	,ресСуммаБазОборот numeric(38,2)
	,ресСуммаБазКонечныйОстаток numeric(38,2)
	,ресСуммаБазПродНачальныйОстаток numeric(38,2)
	,ресСуммаБазПродПриход numeric(38,2)
	,ресСуммаБазПродРасход numeric(38,2)
	,ресСуммаБазПродОборот numeric(38,2)
	,ресСуммаБазПродКонечныйОстаток numeric(38,2)
	,primary key clustered (измТовар,НачалоПериода))

insert into #vt_totalrg_99_17578064
select
	vt_totalreg.НачалоПериода
	,vt_totalreg.измТовар as измТовар
	,sum(vt_totalreg.ресКоличествоОстаток) as ресКоличествоНачальныйОстаток
	,sum(vt_totalreg.ресКоличествоПриход) as ресКоличествоПриход
	,sum(vt_totalreg.ресКоличествоРасход) as ресКоличествоРасход
	,sum(vt_totalreg.ресКоличествоОборот) as ресКоличествоОборот
	,0 as ресКоличествоКонечныйОстаток
	,sum(vt_totalreg.ресСуммаБазОстаток) as ресСуммаБазНачальныйОстаток
	,sum(vt_totalreg.ресСуммаБазПриход) as ресСуммаБазПриход
	,sum(vt_totalreg.ресСуммаБазРасход) as ресСуммаБазРасход
	,sum(vt_totalreg.ресСуммаБазОборот) as ресСуммаБазОборот
	,0 as ресСуммаБазКонечныйОстаток
	,sum(vt_totalreg.ресСуммаБазПродОстаток) as ресСуммаБазПродНачальныйОстаток
	,sum(vt_totalreg.ресСуммаБазПродПриход) as ресСуммаБазПродПриход
	,sum(vt_totalreg.ресСуммаБазПродРасход) as ресСуммаБазПродРасход
	,sum(vt_totalreg.ресСуммаБазПродОборот) as ресСуммаБазПродОборот
	,0 as ресСуммаБазПродКонечныйОстаток
from (select
		'20110301' as НачалоПериода
		,vt_balance.измТовар as измТовар
		,vt_balance.ресКоличествоОстаток as ресКоличествоОстаток
		,0 as ресКоличествоПриход
		,0 as ресКоличествоРасход
		,0 as ресКоличествоОборот
		,vt_balance.ресСуммаБазОстаток as ресСуммаБазОстаток
		,0 as ресСуммаБазПриход
		,0 as ресСуммаБазРасход
		,0 as ресСуммаБазОборот
		,vt_balance.ресСуммаБазПродОстаток as ресСуммаБазПродОстаток
		,0 as ресСуммаБазПродПриход
		,0 as ресСуммаБазПродРасход
		,0 as ресСуммаБазПродОборот
	from
		(
	SELECT
		измТовар
		,SUM(ресКоличествоОстаток) AS ресКоличествоОстаток
		,SUM(ресСуммаБазОстаток) AS ресСуммаБазОстаток
		,SUM(ресСуммаБазПродОстаток) AS ресСуммаБазПродОстаток
		
	FROM
		(SELECT
			rg_99.sp101 AS измТовар
			,rg_99.sp102 AS ресКоличествоОстаток
			,rg_99.sp163 AS ресСуммаБазОстаток
			,rg_99.sp1111 AS ресСуммаБазПродОстаток
			
		FROM
			RG99 AS rg_99 (nolock)
		INNER JOIN SC33 AS СпрТ (nolock) ON СпрТ.ID = измТовар
		WHERE
			rg_99.PERIOD = '20110201'
		AND
			СпрТ.SP1212 = '    12   '
		) AS vt_ra_99
	GROUP BY
		измТовар
	HAVING (SUM(ресКоличествоОстаток) <> 0)
	OR (SUM(ресСуммаБазОстаток) <> 0)
	OR (SUM(ресСуммаБазПродОстаток) <> 0)
	
) as vt_balance
	
	union all
	
	select
		case when vt_turnover.Период < '20110301' then '20110301' else vt_turnover.Период end
		,vt_turnover.измТовар
		,0
		,vt_turnover.ресКоличествоПриход
		,vt_turnover.ресКоличествоРасход
		,vt_turnover.ресКоличествоОборот
		,0
		,vt_turnover.ресСуммаБазПриход
		,vt_turnover.ресСуммаБазРасход
		,vt_turnover.ресСуммаБазОборот
		,0
		,vt_turnover.ресСуммаБазПродПриход
		,vt_turnover.ресСуммаБазПродРасход
		,vt_turnover.ресСуммаБазПродОборот
	from (
	SELECT
		Период
		,измТовар
		,SUM(ресКоличествоПриход) AS ресКоличествоПриход
		,SUM(ресКоличествоРасход) AS ресКоличествоРасход
		,SUM(ресКоличествоОборот) AS ресКоличествоОборот
		,SUM(ресСуммаБазПриход) AS ресСуммаБазПриход
		,SUM(ресСуммаБазРасход) AS ресСуммаБазРасход
		,SUM(ресСуммаБазОборот) AS ресСуммаБазОборот
		,SUM(ресСуммаБазПродПриход) AS ресСуммаБазПродПриход
		,SUM(ресСуммаБазПродРасход) AS ресСуммаБазПродРасход
		,SUM(ресСуммаБазПродОборот) AS ресСуммаБазПродОборот
		
	FROM
		(SELECT
			$НачалоПериода.МЕСЯЦ(LEFT(ra_99.DATE_TIME_IDDOC,8)) AS Период
			,ra_99.sp101 AS измТовар
			,CASE WHEN ra_99.debkred = 0 THEN ra_99.sp102 ELSE 0 END AS ресКоличествоПриход
			,CASE WHEN ra_99.debkred = 1 THEN ra_99.sp102 ELSE 0 END AS ресКоличествоРасход
			,CASE WHEN ra_99.debkred = 0 THEN ra_99.sp102 ELSE -ra_99.sp102 END AS ресКоличествоОборот
			,CASE WHEN ra_99.debkred = 0 THEN ra_99.sp163 ELSE 0 END AS ресСуммаБазПриход
			,CASE WHEN ra_99.debkred = 1 THEN ra_99.sp163 ELSE 0 END AS ресСуммаБазРасход
			,CASE WHEN ra_99.debkred = 0 THEN ra_99.sp163 ELSE -ra_99.sp163 END AS ресСуммаБазОборот
			,CASE WHEN ra_99.debkred = 0 THEN ra_99.sp1111 ELSE 0 END AS ресСуммаБазПродПриход
			,CASE WHEN ra_99.debkred = 1 THEN ra_99.sp1111 ELSE 0 END AS ресСуммаБазПродРасход
			,CASE WHEN ra_99.debkred = 0 THEN ra_99.sp1111 ELSE -ra_99.sp1111 END AS ресСуммаБазПродОборот
			
		FROM
			RA99 AS ra_99 (nolock)
		INNER JOIN SC33 AS СпрТ (nolock) ON СпрТ.ID = измТовар
		WHERE (ra_99.DATE_TIME_IDDOC >= '20110301     0     0   ')
		AND (ra_99.DATE_TIME_IDDOC < '20110330     1     0   ')
		AND
			СпрТ.SP1212 = '    12   '
		) AS vt_ra_99
	GROUP BY
		Период
		,измТовар
	HAVING (SUM(ресКоличествоПриход) <> 0)
	OR (SUM(ресКоличествоРасход) <> 0)
	OR (SUM(ресКоличествоОборот) <> 0)
	OR (SUM(ресСуммаБазПриход) <> 0)
	OR (SUM(ресСуммаБазРасход) <> 0)
	OR (SUM(ресСуммаБазОборот) <> 0)
	OR (SUM(ресСуммаБазПродПриход) <> 0)
	OR (SUM(ресСуммаБазПродРасход) <> 0)
	OR (SUM(ресСуммаБазПродОборот) <> 0)
	
) as vt_turnover
	  ) as vt_totalreg
group by
	vt_totalreg.измТовар,vt_totalreg.НачалоПериода
HAVING (sum(vt_totalreg.ресКоличествоОстаток) <> 0)
OR (sum(vt_totalreg.ресКоличествоПриход) <> 0)
OR (sum(vt_totalreg.ресКоличествоРасход) <> 0)
OR (sum(vt_totalreg.ресКоличествоОборот) <> 0)
OR (sum(vt_totalreg.ресСуммаБазОстаток) <> 0)
OR (sum(vt_totalreg.ресСуммаБазПриход) <> 0)
OR (sum(vt_totalreg.ресСуммаБазРасход) <> 0)
OR (sum(vt_totalreg.ресСуммаБазОборот) <> 0)
OR (sum(vt_totalreg.ресСуммаБазПродОстаток) <> 0)
OR (sum(vt_totalreg.ресСуммаБазПродПриход) <> 0)
OR (sum(vt_totalreg.ресСуммаБазПродРасход) <> 0)
OR (sum(vt_totalreg.ресСуммаБазПродОборот) <> 0)

order by
	vt_totalreg.измТовар,vt_totalreg.НачалоПериода, Число БезПодготовки=1) : State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'измТовар'.
ЗапросODBC.ВыполнитьИнструкцию(ПодготовленныйТекстЗапроса);
{E:\Mine\Otladka\mdwork\classes\ПрямойЗапрос.ert(13529) }

я().ВыполнитьЗапрос(ТекстЗапроса_ОстаткиОбороты,1);
{E:\Mine\Otladka\mdwork\classes\ПрямойЗапрос.ert(6385) }