Сегодня я начал писать запрос, как указано ниже:
SELECT IP1.InstId,CAST(IP2.Quote AS DECIMAL(10,2)) AS 'CurrentPrice',IP1.Quote,(IP2.Quote-IP1.Quote) AS 'Change'
FROM InstrumentPrices IP1
INNER JOIN InstrumentPrices IP2
ON IP1.InstId=IP2.InstId
INNER JOIN Instruments I
ON I.Id=IP2.InstId
INNER JOIN Games G
ON G.Id=IP1.GameId
AND G.CurrentPeriod-2=IP1.Period
AND G.CurrentPeriod-1=IP2.Period
Приведенный выше запрос вернул меня с ожидаемыми результатами. Затем я изменил вывод столбца IP2.Quote таким образом, чтобы он возвращал десятичные точки на основе другого столбца NDP в таблице инструментов. Измененный запрос, как указано ниже:
SELECT IP1.InstId,CAST(IP2.Quote AS DECIMAL(10,I.NDP)) AS 'CurrentPrice',IP1.Quote,(IP2.Quote-IP1.Quote) AS 'Change'
FROM InstrumentPrices IP1
INNER JOIN InstrumentPrices IP2
ON IP1.InstId=IP2.InstId
INNER JOIN Instruments I
ON I.Id=IP2.InstId
INNER JOIN Games G
ON G.Id=IP1.GameId
AND G.CurrentPeriod-2=IP1.Period
AND G.CurrentPeriod-1=IP2.Period
Второй запрос вернул синтаксическое возвращение, как указано ниже:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'I'.
Понятия не имею об ошибке, возвращаемой SQLServer.
Пожалуйста, помогите !!!
Спасибо, Махеш