2016-07-15 14 views
0

を投げるところ、私は条件サブクエリからの選択条件がエラー

if not exists 
(select @DocTaxID from (select bundlechecklist.Bundle_TXN_ID, documentchecklist.Doc_Checklist_TXN_ID, documentchecklist.Doc_Type_Name from ecm.bundle_checklist_txn bundlechecklist 
        left outer join [ECM].[Document_Checklist_TXN] documentchecklist on documentchecklist.Bundle_TXN_ID = bundlechecklist.Bundle_TXN_ID 
        where bundlechecklist.originating_tran_id = "AMD" 
        and bundle_name = 'Line') 
        where @DocTaxID is not null) 

    begin 
     insert into [ECM].[Document_Checklist_TXN] 
      (bundle_txn_id, document_action_rule_id, action_rule_name, doc_type_name, cp_document_name, document_id, doc_status_code) 
     values 
      (1, 17, 'A', 'DEv', 'Dec', 12, 'Pend') 

    end 

DocTaxIDが整数フィールドであるところで、別のサブクエリから選択しています以下のクエリを持って選択します。 そして私が得ているエラーは、 "キーワード 'の近くの構文が間違っています'

+0

サブクエリにエイリアシングがないため、エラーが発生したのは、 '... and bundle_name 'Line')As Where @DocTaxId ...' *ただし、*あなたのクエリは '本当に意味をなさないサブクエリ全体は 'WHERE @DocTaxID IS NOT NULL'セグメントによって無視されます。言うまでもなく、2つの変数はスニペット内の他の場所でも使用されていません。 *クエリで何をしようとしているのか説明できますか?* – Siyual

+0

使用しているデータベース(おそらくSQL Server)で質問にタグを付けます。 –

+0

はいSQLサーバーです。それについて申し訳ありません – user3331421

答えて

2

あなたは、テーブルの別名が必要です。どういうわけか

select @DocTaxID 
from (select bundlechecklist.Bundle_TXN_ID, documentchecklist.Doc_Checklist_TXN_ID, documentchecklist.Doc_Type_Name 
     from ecm.bundle_checklist_txn bundlechecklist left outer join 
      [ECM].[Document_Checklist_TXN] documentchecklist 
      on documentchecklist.Bundle_TXN_ID = bundlechecklist.Bundle_TXN_ID 
     where bundlechecklist.originating_tran_id = 'AMD' and bundle_name = 'Line' 
    ) d 
-------^ 
where @DocTaxID is not null ; 

を、私はこのロジックを表現するためにはるかに簡単な方法があると思いますが、オフ手、やっているまさに明確ではありません。

+0

エイリアス...それは働いた – user3331421