将SQL Server Proc转换为视图

时间:2018-06-26 11:37:31

标签: 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)) + ')' [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';

就目前而言,此代码可以正常工作并提取我需要的信息。由于我不想解释的原因,我想将其转换为视图。我知道您不能以自己的方式声明变量,但是有没有一种方法可以修改我必须允许使用上述两个变量的方式?

1 个答案:

答案 0 :(得分:0)

这比您想象的要简单 我已经移动了您的第一选择并进行“ 1 = 1”友好的加入 然后您不需要任何变量

TaskScheduler.UnobservedTaskException