SELECT Подзапрос.Склад [Склад $Справочник.МестаХранения] ,CASE WHEN Подзапрос.СуммаКол = 0 THEN Sum(Подзапрос.СуммаКол) ELSE Sum(Подзапрос.СуммаСС / Подзапрос.СуммаКол * Подзапрос1.СуммаКол) END РезСС , Sum(Подзапрос1.СуммаКол * Подзапрос2.ЦенаД) РезЦена , Sum(Подзапрос.СуммаСС) ОстСС , Sum(Подзапрос.СуммаКол * Подзапрос2.ЦенаД) ОстЦена FROM (SELECT ПартииТоваровОстатки.Товар , ПартииТоваровОстатки.Склад , Sum(ПартииТоваровОстатки.ОстатокТовараОстаток) СуммаКол , Sum(ПартииТоваровОстатки.СебестоимостьОстаток) СуммаСС FROM $РегистрОстатки.ПартииТоваров(:ВыбДата~,,((Фирма = :ВыбФирма)), (Товар, Склад), (ОстатокТовара, Себестоимость)) AS ПартииТоваровОстатки GROUP BY ПартииТоваровОстатки.Товар , ПартииТоваровОстатки.Склад) AS Подзапрос LEFT OUTER JOIN (SELECT РезервыТоваровОстатки.Товар , РезервыТоваровОстатки.Склад , Sum(РезервыТоваровОстатки.РезервТовараОстаток) СуммаКол FROM $РегистрОстатки.РезервыТоваров(:ВыбДата~,,((Фирма = :ВыбФирма)), (Товар, Склад),) AS РезервыТоваровОстатки GROUP BY РезервыТоваровОстатки.Товар , РезервыТоваровОстатки.Склад) AS Подзапрос1 ON Подзапрос.Товар = Подзапрос1.Товар AND Подзапрос.Склад = Подзапрос1.Склад LEFT OUTER JOIN (SELECT Цены.PARENTEXT Товар , ($ПоследнееЗначение.Цены.Цена(Цены.ID, :ВыбДата) * $ПоследнееЗначение.Валюты.Курс(Валюты.ID, :ВыбДата)) ЦенаД FROM $Справочник.Цены AS Цены LEFT OUTER JOIN $Справочник.Валюты AS Валюты ON $Цены.Валюта = Валюты.ID WHERE ($Цены.ТипЦен = :ВыбТипЦен)) AS Подзапрос2 ON Подзапрос.Товар = Подзапрос2.Товар GROUP BY Подзапрос.Склад ORDER BY Подзапрос.Склад
тз = RS.ВыполнитьИнструкцию(ТекстЗапроса);
{D:\1C_BASE.ADM\WORK1C\EXTFORMS\01_SHAYBA.ERT(90)}: 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.
Добавляю CASE выдает ошибку, без CASE - деление на 0
|