次のスクリプトを参照してください。データを連結するためのテーブル上のループ(カーソルを使用しない)
DECLARE @Products Table ( PId int)
INSERT @Products SELECT 100
INSERT @Products SELECT 101
INSERT @Products SELECT 102
DECLARE @Stff Table (Stid int, StaffName VARCHAR(20))
INSERT @Stff SELECT 301, 'White'
INSERT @Stff SELECT 302, 'Green'
DECLARE @Items Table
(
ItemId int,
PIdFK int,
StIdFK int,
CreatedDate DateTime,
Notes varchar(100),
NotesHistory varchar(2000)
)
INSERT INTO @Items SELECT 1, 100, 301, GETDATE(), Null, NULL
INSERT INTO @Items SELECT 2, 101, 301, GETDATE(), Null, NULL
INSERT INTO @Items SELECT 3, 101, 301, DATEADD(DD, 1, GETDATE()), 'Hello Dear', NULL
INSERT INTO @Items SELECT 4, 101, 301, DATEADD(DD, 2, GETDATE()), 'Did you get my msg?', NULL
INSERT INTO @Items SELECT 5, 102, 302, GETDATE(), Null, NULL
INSERT INTO @Items SELECT 6, 102, 302, DATEADD(DD, 1, GETDATE()), Null, NULL
INSERT INTO @Items SELECT 7, 102, 302, DATEADD(DD, 3, GETDATE()), 'How are you doing?', NULL
INSERT INTO @Items SELECT 8, 102, 302, DATEADD(DD, 4, GETDATE()), 'Your Items are ready.', NULL
SELECT * FROM @Items
DECLARE @ItemsHistory Table
(
ItemHisotryId int,
ItemIdFK int,
StIdFK int,
NotesHisotry varchar(200),
CreatedDate DATETIME
)
INSERT INTO @ItemsHistory SELECT 1, 1, 301, NULL, GETDATE()
INSERT INTO @ItemsHistory SELECT 2, 2, 301, NULL, GETDATE()
INSERT INTO @ItemsHistory SELECT 3, 3, 301, 'Hello Dear', DATEADD(DD, 1, GETDATE())
INSERT INTO @ItemsHistory SELECT 4, 4, 301, 'Dimd you get my msg?', DATEADD(DD, 2, GETDATE())
INSERT INTO @ItemsHistory SELECT 5, 5, 302, NULL, GETDATE()
INSERT INTO @ItemsHistory SELECT 6, 6, 302, NULL, DATEADD(DD, 1, GETDATE())
INSERT INTO @ItemsHistory SELECT 7, 7, 302, 'How are you doing?', DATEADD(DD, 3, GETDATE())
INSERT INTO @ItemsHistory SELECT 8, 8, 302, 'Your Items are ready', DATEADD(DD, 4, GETDATE())
私はPID
ItemsHistory.NotesHisotry
列を持つアイテムテーブルの
Items.NotesHistory
列を更新するには、実は私は、1つの文字列にアイテムテーブルの
Notes
列とItemsHistoryテーブルの
NotsHistory
列内のすべてのデータをCONCATしたいです
カーソルを使用せずにこれを手伝ってもらえますか?私はCTEがこれを行うことができるようにSQL Server 2008を使用していますが、私はこれをどのように達成できるのか分かりません。結果の文字列が一部後
<b>Items.CreaedDate - Items.StaffName: <b/> Items.Notes <br/><b>ItemsHisotryCreatedDate - ItemsHistory.StaffName <b> ItemsHistory.NotesHistory
を次のようにする必要があり
は、各レコードにItemsHistoryテーブルから追加されますユニークな「PIdを」
<br/><b>ItemsHisotryCreatedDate - ItemsHistory.StaffName <b> ItemsHistory.NotesHistory
感謝のために追加。
ありがとうございます、結果は私が見ているものではありません。 '101 \t私のメッセージはありますか?こんにちは親愛なる、どうやっていますか?あなたの商品は準備完了です。 '102 \tあなたは私のメッセージを受け取りましたか?こんにちは親愛なる、どうやっていますか?あなたの商品は準備ができています。 結果は であるはずです。101こんにちは。私のメッセージを受け取ったのですか? 102どうやって準備していますか? フォーマットは残念です。 – Kashif
申し訳ありませんが、私の悪い、もう一度やり直してください。 –