1

これを行うことは可能ですか:

SELECT UserName FROM payroll p
INNER JOIN aspnet_Users u
ON (p.staffId= u.UserId)
WHERE jobId = '1011'

たとえば、上記の select が 3 つの結果を返す場合: john001、mary002、peter003

個々の結果をテーブル (通知) 列に挿入するにはどうすればよいですか? この場合、[受信者] 列だけが異なる値になり、上記の Select ステートメントから返される結果になります。

INSERT INTO [Notification]
(
[Recipient], 
[Message],
[Type],
[DateCreated]
)
VALUES
(
-- The results from the select statement
'Testing Message'
'Type1,
GETUTCDATE()
)

したがって、最終的には、通知テーブルに次の列が必要です。

john001, Testing Message, Type1, 10/10/1945
mary002, Testing Message, Type1, 10/10/1945
peter003, Testing Message, Type1, 10/10/1945

前もって感謝します。

4

3 に答える 3

2

INSERT INTO..SELECT..FROMクエリを使用する必要があります。

INSERT INTO [Notification]
(
    [Recipient], 
    [Message],
    [Type],
    [DateCreated]
)
SELECT UserName, 'Testing Message', 'Type1', GETUTCDATE()
FROM payroll p
INNER JOIN aspnet_Users u
    ON (p.staffId= u.UserId)
WHERE jobId = '1011'

参考資料:

于 2013-03-04T17:51:59.570 に答える
1

あなたができる

INSERT INTO [Notification]
(
[Recipient], 
[Message],
[Type],
[DateCreated]
)
SELECT UserName, 
'Testing Message' 
'Type1,
GETUTCDATE()
FROM payroll p
INNER JOIN aspnet_Users u
ON (p.staffId= u.UserId)
WHERE jobId = '1011'

INSERT および SELECT ステートメントを使用して、次の方法でテーブルに行を追加できます。

INSERT ステートメントを使用して、直接またはサブクエリから値を指定します。

INTO 句で SELECT ステートメントを使用します。

http://msdn.microsoft.com/en-us/library/ms188263(v=sql.105).aspx

追加の参照:

http://blog.sqlauthority.com/2007/08/15/sql-server-insert-data-from-one-table-to-another-table-insert-into-select-select-into-table/

于 2013-03-04T17:52:39.767 に答える
1
INSERT INTO Notification
(
Recipient, 
Message,
Type,
DateCreated
)
SELECT UserName, 'Testing Messag', 'Type1', GETUTCDATE()
 FROM payroll p
 JOIN aspnet_Users u
  ON (p.staffId= u.UserId)
Where jobId = '1011'
于 2013-03-04T17:55:47.930 に答える