0
2つのテーブルがあります(1つのテーブルはxmlから作成されます)。 最初のテーブルの値とキーに基づいて、2番目のテーブルの列を更新する必要があります。最初のテーブルの値/キーに基づいて2番目のテーブルを更新します。
テーブルには同じ列があります。まず表:
DECLARE @tblORAS_NET TABLE
(
ORAS_KEY INT,
ORAS_NET DECIMAL(15,4)
)
2番目の表は、ほぼ同じである:
DECLARE @tblORAS_NET1 TABLE
(
ORAS_KEY INT,
ORAS_NET DECIMAL(15,4)
)
私の質問は - 最初のテーブルから最初のテーブルからORAS_NET
に基づいて、第2表中のORAS_NET
とORAS_KEY
を更新する方法?私の主な問題は、私はORAS_KEY
の条件を書き込む方法を知らず、同時にORAS_NET
を取得することですか?私は、これはあなたがしたい更新ステートメントであると考えてい
declare @xml_ORAS_NET xml = '<DataTable>
<TR><ORAS_KEY>1</ORAS_KEY><ORAS_NET>284.03</ORAS_NET></TR>
<TR><ORAS_KEY>2</ORAS_KEY><ORAS_NET>543.12</ORAS_NET></TR>
<TR><ORAS_KEY>3</ORAS_KEY><ORAS_NET>981.91</ORAS_NET></TR>
</DataTable>';
DECLARE @tblORAS_NET TABLE
(
ORAS_KEY INT,
ORAS_NET DECIMAL(15,4)
)
IF (@xml_ORAS_NET IS NOT NULL)
BEGIN
INSERT INTO @tblORAS_NET (ORAS_KEY, ORAS_NET)
SELECT
DataTable.TR.value('ORAS_KEY[1]','INT') AS ORAS_KEY,
DataTable.TR.value('ORAS_NET[1]','DECIMAL(15,4)') AS ORAS_NET
FROM @xml_ORAS_NET.nodes('/DataTable/TR') DataTable(TR)
END
select * from @tblORAS_NET
DECLARE @tblORAS_NET1 TABLE
(
ORAS_KEY INT,
ORAS_NET DECIMAL(15,4)
)
insert into @tblORAS_NET1(oras_key) values(1),(2),(3)
select * from @tblORAS_NET1
ます。http: //sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspxこれが正しい方向であるように見えます。 –
それは公正な警官、ショーンです。私の答えを更新して「結合」を使用する。 – Brett