Sql server 将SQL Server进程转换为视图

Sql server 将SQL Server进程转换为视图,sql-server,tsql,stored-procedures,sql-view,Sql Server,Tsql,Stored Procedures,Sql View,我正在尝试将以下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)) + ')' [Repo

我正在尝试将以下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';
DECLARE@Date
声明@ID INT
选择@ID=SystemCalendarID,
@日期=日期
从Server2.dbo.SystemCalendar
其中IsCurrentReportingDay='Y'
选择cp.ClientName+'('+CAST(cp.ClientID为VARCHAR(MAX))+')'[Reporting point],
icp.ClientName+'('+CAST(icp.ClientID为VARCHAR(MAX))+)'[Issuer],
RTRIM(icp.GroupName)+'('+CAST(icp.GroupID作为VARCHAR(MAX))+'))'[Group],
s、 ClientName+'('+CAST(s.ClientID作为VARCHAR(MAX))+')作为[Site],
i、 照应,
tr.SourceSystemTradeId,
tr.SWWR,
斯沃雷罗,
tc.评论,
tc.签字人,
tc.CompletedFlag,
tc.预先批准的标签,
tc.GenuineWWRFlag,
tc.sid,
历史类群
从myapp.SWWR_NonIndex_Trades tr
在tc.SourceSystemTradeID=tr.SourceSystemTradeID上左键加入myapp.vLatestswwr\u NonIndex\u TradeComments tc
和tc.IsActive=1
内部连接myapp.SWWR\u NonIndex\u TradeAttribs ta ON ta.TradeID=tr.TradeID
和ta.IsActive=1
和ta.到期日>=@日期

这比你想象的要简单 我已经移动你首先选择和做“1=1”类加入 然后你不需要任何变量

CREATE VIEW XXX  
AS  
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   Server2.dbo.SystemCalendar SC       
       INNER JOIN myapp.SWWR_NonIndex_Trades tr ON SC.IsCurrentReportingDay = 'Y'
       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 >= SC.Date
                                                       AND ta.TradeDate <= SC.Date
                                                       AND ta.ID = SC.SystemCalendarID
       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';
创建视图XXX
作为
选择cp.ClientName+'('+CAST(cp.ClientID为VARCHAR(MAX))+')'[Reporting point],
icp.ClientName+'('+CAST(icp.ClientID为VARCHAR(MAX))+)'[Issuer],
RTRIM(icp.GroupName)+'('+CAST(icp.GroupID作为VARCHAR(MAX))+'))'[Group],
s、 ClientName+'('+CAST(s.ClientID作为VARCHAR(MAX))+')作为[Site],
i、 照应,
tr.SourceSystemTradeId,
tr.SWWR,
斯沃雷罗,
tc.评论,
tc.签字人,
tc.CompletedFlag,
tc.预先批准的标签,
tc.GenuineWWRFlag,
tc.sid,
历史类群
从Server2.dbo.SystemCalendar SC
内部连接myapp.SWWR\u非索引\u在SC.IsCurrentReportingDay交易tr='Y'
在tc.SourceSystemTradeID=tr.SourceSystemTradeID上左键加入myapp.vLatestswwr\u NonIndex\u TradeComments tc
和tc.IsActive=1
内部连接myapp.SWWR\u NonIndex\u TradeAttribs ta ON ta.TradeID=tr.TradeID
和ta.IsActive=1
和ta.到期日>=SC.日期

如果您在得到答案后不删除问题内容,那么ta.TradeDate将很好