使用两个表创建具有STUFF功能的视图

时间:2016-11-28 23:33:38

标签: sql sql-server create-view

我有一个创建视图,我正在使用STUFF函数。我让它工作的地方需要一个表中的一个字段并填充它。但是这些值是int,并且在另一个表中有相应的描述。所以我的东西字段中有“4,5”,我希望它是“这是#4描述,这是#5描述”。我的创建视图和STUFF函数如下,表格由ConditionsReasonsID链接但是我需要RequestedBurnsID作为原始内容并在我的创建视图中使用。

CREATE VIEW [AQB_OB].[GISREQUESTEDBURNS] 
AS

with conditions as 
(SELECT DISTINCT BD.[RequestedBurnsID]
,[ConditionsReasonsID] = STUFF((SELECT ', ' + CONVERT(VARCHAR(20),[ConditionsReasonsID]) 
FROM [AQB_OB].[BurnDecisions] WHERE [RequestedBurnsID]= BD.[RequestedBurnsID] 
ORDER BY [RequestedBurnsID] ASC
FOR XML PATH ('')) , 1 , 1, '') FROM
[AQB_OB].[BurnDecisions] BD)

SELECT RB.[RequestedBurnsID] AS REQUESTEDBURNID
  ,BUY.[BurnYear] AS BURNYEAR
  ,CY.[CurrentYear] AS CURRENTYEAR
  ,RB.[BurnSitesID] AS BURNSITESID
  ,[BurnerID] AS BURNERID
  ,[BurnStartDate] AS BURNSTARTDATE
  ,[BurnEndDate] AS BURNENDDATE
  ,[BurnDecision] AS BURNDECISION
  ,RB.[Comment] AS COMMENT
  ,CC.ConditionsReasonsID AS CONDITIONS

  FROM [AQB_MON].[AQB_OB].[RequestedBurns] RB
 inner join AQB_MON.[AQB_OB].[BurnSites] BS on RB.BurnSitesID = BS.BurnSitesID
full outer join  conditions CC on CC.RequestedBurnsID = RB.RequestedBurnsID 
INNER JOIN [AQB_OB].[ConditionsReasons] CR ON CR.ConditionsReasonsID = CC.ConditionsReasonsID
GO

更新 - 我的表格结构为两个表 - BurnDecision和ConditionsReasons。我需要SELECT DISTINCT,因为它与RequestedBurnes绑定,因为这是创建视图的表。

enter image description here

更新 - 使用原始sql语句生成结果。我希望Conditions列中的整数是来自ConditionsReasons表的字符串描述。

enter image description here

0 个答案:

没有答案