Eprst писал(а) 08. Сентября 2011 :: 08:24:Сделай алияс на подзапрос, воткни в селект листе всё в сумму,
выкини 2 юниона, заместо них, тупо в case условие на склад.
воткнул алиас на подзапрос и вот что вышло, точно дело в нем было
{Глобальный модуль(144)}: State 42000, native 8120, message [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'Выборка.ОстНаСкладе' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
{call sp_executesql(N'
SELECT
SUM(Выборка.ОстНаСкладе) ОстНаСкладе,
SUM(Выборка.ОстНаФирме) ОстНаФирме,
SUM(Выборка.РезервНаСкладе) РезервНаСкладе,
SUM(Выборка.РезервНаФирме) РезервНаФирме,
(ОстНаСкладе - РезервНаСкладе) ОстатокСклад,
(ОстНаФирме - РезервНаФирме) ОстатокФирма
FROM
(SELECT
РегОстатки.sp411 ОстНаСкладе,
0 ОстНаФирме,
0 РезервНаСкладе,
0 РезервНаФирме
FROM
rg405 as РегОстатки
WHERE
РегОстатки.Period = @ВыбДата2 AND РегОстатки.sp4062 = @ВыбФирма0 AND РегОстатки.sp408 = @ВыбНоменкл0 AND РегОстатки.sp418 = @ВыбСклад0
UNION ALL
SELECT
0 ОстНаСкладе,
РегОстатки.sp411 ОстНаФирме,
0 РезервНаСкладе,
0 РезервНаФирме
FROM
rg405 as РегОстатки
WHERE
РегОстатки.Period = @ВыбДата2 AND РегОстатки.sp4062 = @ВыбФирма0 AND РегОстатки.sp408 = @ВыбНоменкл0
UNION ALL
SELECT
0 ОстНаСкладе,
0 ОстНаФирме,
РегРезервы.sp4479 РезервНаСкладе,
0 РезервНаФирме
FROM
rg4480 as РегРезервы
WHERE
РегРезервы.Period = @ВыбДата2 AND РегРезервы.sp4475 = @ВыбФирма0 AND РегРезервы.sp4477 = @ВыбНоменкл0 AND РегРезервы.sp4476 = @ВыбСклад0
UNION ALL
SELECT
0 ОстНаСкладе,
0 ОстНаФирме,
РегРезервы.sp4479 РезервНаСкладе,
0 РезервНаФирме
FROM
rg4480 as РегРезервы
WHERE
РегРезервы.Period = @ВыбДата2 AND РегРезервы.sp4475 = @ВыбФирма0 AND РегРезервы.sp4477 = @ВыбНоменкл0) as Выборка
', N'@ВыбДата2 datetime,@ВыбФирма0 char(9),@ВыбНоменкл0 char(9),@ВыбСклад0 char(9)'
,{d '2011-09-01'},' 2 ',' BEL ',' 1 ')}
СтруктураОстатков = НаборЗаписей.ВыполнитьСкалярный(ТекстЗапроса);
{Глобальный модуль(144)}: State 42000, native 8120, message [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'Выборка.ОстНаСкладе' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Я так понимаю ему группировку подавай