作成ビューがあり、STUFF
関数を使用しています。1つのテーブルから1つのフィールドを取得して詰め込む場所で動作しています。ただし、これらの値は 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
更新 - 2 つのテーブル - BurnDecision と ConditionsReasons の私のテーブル構造。SELECT DISTINCT
ビューが作成されるテーブルであるため、 RequestedBurnes に関連付けられている必要があります。
更新 - 元の sql ステートメントの結果。Conditions 列の整数を、ConditionsReasons テーブルの文字列の説明にしたいと思います。