私は正しく処理しているクエリを取得しています。エラーを引き起こす2番目のUNIONを追加します。
DECLARE @theItewId VARCHAR(100) = (SELECT item_id
FROM ndc_attr
WHERE attr_val = '00310072010');
SELECT nr.item_id,
nr.field_id,
nr.attr_val,
nr.upd_dtt,
nr.upd_usr,
nr.item_id,
1 AS counting,
nr.field_id
FROM ndc_attr nr
WHERE item_id = @theItewId
AND field_id IN ( 69, 144, 150, 148, 170 )
UNION ALL
SELECT TOP 1 @theItewId AS item_id,
418 AS field_id,
nr.contract_num_val AS attr_val,
CURRENT_TIMESTAMP AS upd_dtt,
'-1' AS upd_usr,
'-1' AS item_id,
'-1' AS counting,
'-1' AS field_id
FROM contract_ndc_brg nr
WHERE ndc_id = '00310072010'
ORDER BY upd_dtt DESC
しかし、別のUNION ALLを追加しようとすると、エラーが発生し、その理由を理解できません。
DECLARE @theItewId VARCHAR(100) = (SELECT item_id
FROM ndc_attr
WHERE attr_val = '00310072010');
SELECT nr.item_id,
nr.field_id,
nr.attr_val,
nr.upd_dtt,
nr.upd_usr,
nr.item_id,
1 AS counting,
nr.field_id
FROM ndc_attr nr
WHERE item_id = @theItewId
AND field_id IN ( 69, 144, 150, 148, 170 )
UNION ALL
SELECT TOP 1 @theItewId AS item_id,
418 AS field_id,
nr.contract_num_val AS attr_val,
CURRENT_TIMESTAMP AS upd_dtt,
'-1' AS upd_usr,
'-1' AS item_id,
'-1' AS counting,
'-1' AS field_id
FROM contract_ndc_brg nr
WHERE ndc_id = '00310072010'
ORDER BY upd_dtt DESC
UNION ALL
SELECT TOP 1 @theItewId AS item_id,
981 AS field_id,
nr.quote_price AS attr_val,
CURRENT_TIMESTAMP AS upd_dtt,
'-1' AS upd_usr,
'-1' AS item_id,
'-1' AS counting,
'-1' AS field_id
FROM contract_ndc_brg nr
WHERE ndc_id = '00310072010'
ORDER BY upd_dtt DESC
私は間違っていますが、どうすれば修正できますか?
編集:
メッセージ156、レベル15、状態1、プロシージャUSP_ENTY_ATTR_GET_BY_ATTR_VALS、ライン151
キーワード 'UNION' 付近に不適切な構文。
エラーがありますか?それらの多くがあります。あなたはどちらですか? – JNevill
うーん、私はそれを追加しましたが。私は瞬間。 –
エラーが見つかりました!私はそれを引用ブロックに引っ張った。 – JNevill