Я пытаюсь преобразовать следующий код SQL в представление:
DECLARE @Date DATE
DECLARE @ID INT
SELECT @ID = SystemCalendarID,
@Date = Date
FROM Server2.dbo.SystemCalendar
WHERE IsCurrentReportingDay = 'Y'
SELECT cp.ClientName + ' (' + CAST(cp.ClientID AS VARCHAR(MAX)) + ')' [Reporting point] ,
icp.ClientName + ' (' + CAST(icp.ClientID AS VARCHAR(MAX)) + ')' [Issuer] ,
RTRIM(icp.GroupName) + ' (' + CAST(icp.GroupID AS VARCHAR(MAX)) + ')' [Group] ,
s.ClientName + ' (' + CAST(s.ClientID AS VARCHAR(MAX)) + ')' AS [Site] ,
i.ACCode ,
tr.SourceSystemTradeId ,
tr.SWWR ,
tr.SWWRError ,
tc.SanctionerComment ,
tc.SignOffBy ,
tc.CompletedFlag ,
tc.PreApprovedFlag ,
tc.GenuineWWRFlag ,
tc.TradeCommentsID ,
tc.HistoryID
FROM myapp.SWWR_NonIndex_Trades tr
LEFT JOIN myapp.vwLatestSWWR_NonIndex_TradeComments tc ON tc.SourceSystemTradeID = tr.SourceSystemTradeId
AND tc.IsActive = 1
INNER JOIN myapp.SWWR_NonIndex_TradeAttribs ta ON ta.TradeID = tr.TradeID
AND ta.IsActive = 1
AND ta.MaturityDate >= @Date
AND ta.TradeDate <= @Date
AND ta.ID = @ID
LEFT JOIN Server2.dbo.vwLatestReporting_Client cp ON cp.ClientID = tr.ReportingPointCpartyID
LEFT JOIN Server2.dbo.vwLatestReporting_Client lcp ON lcp.ClientID = tr.LegalEntityID
LEFT JOIN Server2.dbo.vwLatestReporting_Client s ON s.ClientID = tr.SiteID
LEFT JOIN myapp.Issuer i ON i.ACCode = tr.ACCode
AND i.IsLatest = 1
LEFT JOIN Server2.dbo.vwLatestReporting_Client icp ON icp.ClientID = COALESCE(
tr.CreditDerivativeUnderlyingIssuerId ,
i.SDS)
WHERE tr.IsActive = 1
AND tr.SWWR ='Y';
В настоящее время этот код работает и извлекает нужную мне информацию. По причинам, которые я не хочу объяснять, я хочу преобразовать это в представление. Я знаю, что вы не можете объявлять переменные так, как я, но есть ли способ, которым я могу изменить то, что мне нужно, чтобы разрешить использование моих двух переменных выше?