私は2つのテーブル(表1と表2)を以下に示します。表からデータを取得しながら、私は上記のリストの通りの2つの行があり、表1では1ストアドプロシージャを使用したデータの更新
+-----------+---------------+---------------------+
+ form_id + request_id + BatchNo +
+-----------+---------------+---------------------+
+ 5649464 + 562 + Batch5649464_1 +
+-----------+---------------+---------------------+
+ 5649464 + 563 + Batch5649464_11 +
+-----------+---------------+---------------------+
表2
+------------+---------------+-----------+
+ NumberId + ServiceName + RefId +
+------------+---------------+-----------+
+ 5649464 + XYZ + 0 +
+------------+---------------+-----------+
+ 5649464 + XYZ + 0 +
+------------+---------------+-----------+
を表
表2の列を更新したいと思っ。デフォルトではRefIdは0です。その列を表1のデータ(request_id)で更新する必要があります。ご覧のとおり、request_idには2つの異なるデータがあります。データ(562と563)は、私の期待出力ごとに更新されるべきです。しかし、今私は私の初期出力ごとに結果を得ています。 誰も私の期待されたアウトプットで得ることができますか?
DECLARE @Tempnumbers TABLE
(
form_id INT ,
request_id INT
);
;
WITH Result
AS (SELECT form_id ,
CONVERT(BIGINT, (CONVERT(VARCHAR, request_id))) AS request_id
FROM [Table1]
)
INSERT INTO @Tempnumbers
SELECT form_id, request_id
FROM Result;
UPDATE DT
SET RefID = request_id
FROM Table2 DT
INNER JOIN @Tempnumbers TN ON TN.NumberId = DT.form_id;
初期出力
+------------+---------------+-----------+
+ NumberId + ServiceName + RefId +
+------------+---------------+-----------+
+ 5649464 + XYZ + 562 +
+------------+---------------+-----------+
+ 5649464 + XYZ + 562 +
+------------+---------------+-----------+
予想される出力
+------------+---------------+-----------+
+ NumberId + ServiceName + RefId +
+------------+---------------+-----------+
+ 5649464 + XYZ + 562 +
+------------+---------------+-----------+
+ 5649464 + XYZ + 563 +
+------------+---------------+-----------+
2番目の+ 5649464 + XYZ +の決定方法は563ですか?その背後にある論理は何ですか? –
ロジックがありません。そのReferenceIdを表2に追加する必要があります。第1行に563、第2行に562を追加したい場合は、それにも問題はありません。表1のrequest_idからのデータが両方とも表2に更新されている限り、 –