私のモデルには、ACCOUNT と WARNING の 2 つのノードがあります。ACCOUNT には 0 個以上の WARNING を含めることができます。
ACCOUNT ノードには、ACCOUNTNUMBER を一意の列とする複数の列があります。
WARNING ノードには、WARNINGCODE、WARNINGDESCRIPTION、および EXPIRATIONDATE があります。また、エッジ テーブル HAS_A_WARNING も作成します。これには、通常の列に加えて、ExpirtionDate があります。
ACCOUNTNUMBER、WARNINGCODE、WARNINGCODEDESCRIPTION、EXPIRATIONDATE を持つステージング テーブルがあります。次のステートメントを実行すると、エラーが発生します。
メッセージ 116、レベル 16、状態 1、行 17 サブクエリが EXISTS で導入されていない場合、選択リストに指定できる式は 1 つだけです。メッセージ 213、レベル 16、状態 1、行 2 列名または指定された値の数がテーブル定義と一致しません。
INSERT INTO [dbo].[HAS_A_WARNING]
values
(
(SELECT
ac.$node_id,
w.$node_id,
acw.ExpirationDate
FROM dbo.Account ac
join Stage.AccountWarning acw
on acw.AccountNumber = ac.ACCOUNTNUMBER
join dbo.Warning w
on w.WarningCode = acw.WarinngCode)
)