以下のようにマージする必要がありますが、テーブルdbo.Problemの値がIsValidカラムに1の場合にのみ行います。 dbo.Problem.ID = dbo.Delivery.IssueIDによってdbo.Problemがdbo.deliveryにリンクされています。リンクテーブルのマージテーブルには値が含まれています
merge [dbo].[Delivery] as D
using [ReportSvr].[Report].[dbo].[Delivery] as LinkD
on (D.[ID] = LinkD.[ID])
WHEN NOT MATCHED BY TARGET
THEN INSERT(
[ID]
,[IssueID]
,[column2]
,[column3]
)
VALUES(
[ID]
,[IssueID]
,[column]
,[column]
);
GO
ような何かをしようとしました。
select d.IssueID, i.IsValid
From Delivery d
left join (Select* From Issue where IsValid = 1) i
on d.IssueID = i.ID
第1ステップは必要な行にできる必要があるためです。
出力:
IssueID IsValid
1 1
2 NULL
6 NULL
7 1
8 1
9 1
10 NULL
私はひどく失敗した見たよう....
私は、これは簡単な作業であれば、私が知っておくべき、SQLへ(二日目)新しいごめんなさい約。
私があなたを助けてくれることを願っています。
MySQLを使用していないなら、あなたはそのタグを削除する必要があります。 –
あなたはあなたの質問で異なる表を使用してから、 'Merge'と' select statements'を使用しましたか?あなたは本当に何をしようとしていますか? '[dbo]。[Delivery]'、 '[ReportSvr]。[Report]。[dbo]。[Delivery]'、 'dbo.Issue'。 'dbo.Problem'や' dbo.Issue'の 'IsValid'カラムはどこにありますか –
私は明確でない場合は申し訳ありません。 [ReportSvr]の行をマージしたいだけですが、[Report]。[dbo]。[ReportSvr]の値IsValid = 1の[Delivery]レポート]。[dbo]。[発行] 2つのテーブルは、[配達] [IssueID] = [Issue]。[ID]でリンクされています。 – Lauge