Этот код производит этот результатSelect подзапрос производит результат, но не тогда, когда используется в качестве пункта обновления
SELECT PER.GLACCOUNT, PER.PERIOD,(SELECT GL.[CLOSING_CREDIT]
FROM [EMBDATA].[DBO].[_EMB_GL_ACTUALVALUESTYP] AS GL
WHERE GL.PERIOD = (DBO.GETMAXPERIOD(PER.GLACCOUNT,PER.PERIOD))
AND GL.ID COLLATE SQL_Latin1_General_CP1_CS_AS =
COLLATE SQL_Latin1_General_CP1_CS_AS) AS BALANCE
FROM [DBO].[GL_PERIOD_BAL] AS PER
WHERE LEFT(PER.GLACCOUNT,4) = 'NM01' AND [BAL.TYPE] = 'R'
ORDER BY PER.GLACCOUNT,PER.PERIOD GLACCOUNT PERIOD BALANCE)
Результат
NM01-4100-0015 2015-12 7081557.0000
NM01-4100-0016 2015-12 0.0000
NM01-4100-0017 2015-12 0.0000
NM01-4100-0018 2015-12 12329577.0000
NM01-4100-0019 2015-12 1622830124.0000
NM01-4100-0020 2015-12 0.0000
NM01-4100-0021 2015-12 23747.0000
NM01-4100-0022 2015-12 0.0000
NM01-4100-0023 2015-12 1623014.0000
Но если я хочу, чтобы объединить его в заявлении, обновление, это ISN» t обновить код .
UPDATE [DBO].[GL_PERIOD_BAL]
SET [CLOSING_CREDIT] = (SELECT GL.[CLOSING_CREDIT]
FROM [EMBRACEDATA].[DBO].[_EMB_GL_ACTUALVALUESTYP] GL
WHERE GL.PERIOD = (DBO.GETMAXPERIOD(GLACCOUNT,PERIOD))
AND GL.ID COLLATE SQL_Latin1_General_CP1_CS_AS =
GLACCOUNT COLLATE SQL_Latin1_General_CP1_CS_AS)
WHERE LEFT(GLACCOUNT,4) = 'NM01' AND [BAL.TYPE] = 'R'