;WITH CTE AS
(
SELECT
codeGood.HeadId,
IIF(codeHead.CodeType = 1, price.SourceGoodCode, price.SourceGoodNameManufName) AS SourceCode
FROM
cnCodeTable codeGood
INNER JOIN cnGoods good ON good.Code = codeGood.Key2
)
SELECT CAST(fil.DWHId AS TINYINT) FilialId
, CAST(head.PriceDate AS DATE) DateValue
, CONVERT(VARCHAR(36), client.Ref, 1) ClientRef
, good.Code GoodCode
, CAST(price.Ostatok AS INT) Amount, CAST(price.Price AS FLOAT) Price
, CONVERT(VARCHAR(36), adr.Ref, 1) AdrdostRef
, CONVERT(VARCHAR(36), dist.Ref, 1) DistribRef
, dbo.fn_Binary1CGUID(src.Uid) SourceRef
FROM cnPriceHead head
INNER JOIN priceTemp price ON price.PriceHeadID =
@priceHeadId INNER JOIN handleSchema sch ON sch.Id = head.HandleSchemaId
INNER JOIN cnSource src ON head.SourceId = src.Id
INNER JOIN cnFilial fil ON fil.Id = src.FilialId
INNER JOIN cnCodeTable codeDist ON codeDist.HeadId = sch.CodeTableHeadDistribId AND codeDist.Key1 = price.SourceDistribCode
INNER JOIN cnDistrib dist ON dist.Code = codeDist.Key2
INNER JOIN cnCodeTable codeClient ON codeClient.HeadId = sch.CodeTableHeadClientId AND codeClient.Key1 = price.SourceClientCode
INNER JOIN adrdost adr ON adr.FilialId = src.FilialId AND adr.Code = codeClient.Key2
INNER JOIN client client ON client.Ref = adr.ClientRef
INNER JOIN linkedCodeTableGood link ON link.HandleSchemaId = sch.Id AND link.DistribId = dist.Id
INNER JOIN cnCodeTableHead codeHead ON codeHead.Id = link.CodeTableHeadId
INNER JOIN CTE ON CTE.HeadId = link.CodeTableHeadId
WHERE head.Id =
@priceHeadId AND $partition.fnPriceTemp(price.PriceHeadID) = 35