2011-12-17 10 views
0

が存在する私はtable.currentlyそれが空のデータを返す私はtblRevisionStatusテーブルに存在するが、@tempに存在しないレコードを返す必要があり、次のSQLクエリSQLないことは、クエリ

declare @temp table(RevisionStatus varchar(100),DocTypeID varchar(50)) 
insert into @temp(RevisionStatus,DocTypeID) 
select distinct md.RevisionStatus,dt.DocumentTypeID 
from MissingDesignData md inner join tblDocumentType dt on md.[Doc Type]=dt.DocumentType inner join tblRevisionStatus rv on md.RevisionStatus=md.RevisionStatus 

select distinct tm.RevisionStatus,tm.DocTypeID as 'DocType' 
from @temp tm 
rv.RevisionStatus=tm.RevisionStatus and rv.DocType=tm.DocTypeID 
where not exists (select distinct rss.RevisionStatus,rss.DocType from tblRevisionStatus rss) 

をしました

を設定

私はデータを@temp選択したときに

として

RevisionStatus DocType 
PEN - Pending 14 
PEN - Pending 16 
PEN - Pending 2 
PEN - Pending 3 
PEN - Pending 30 
PEN - Pending 34 
PEN - Pending 5 
PEN - Pending 55 

tblRevisionStatusデータセットの戻りを次のように、それはです私はそれだけで

PEN - Pending  2 

レコードがtblRevisionStatusテーブルに存在するnothing.but返し上記のSQLクエリを実行すると

RevisionStatus    DocType 

IFC - Issued For Construction  4 
RFD - Revised As Denoted    4 
IFU - Issued For Use   4 
AB - As Built    NULL 
C1 - Proceed, No Exception Taken   2 
PEN - Pending    1 
PEN - Pending    2 
HLD - HOLD (Implementation Study ONLY) 1 

なぜクエリは、私はここで何かが欠けて他のrecords.amを返しませんか?一時テーブルに

SELECT RevisionStatus,DocTypeID as 'DocType' 
from @temp where RevisionStatus not in(select distinct RevisionStatus From tblRevisionStatus) and DocTypeID not in (select distinct DocTypeID From tblRevisionStatus) 

データを転送した後、私はまだ、すべてのテーブルに主キーを使用してのストレス

答えて

0

実際の方法は、要件のこのタイプの主キーを使用することですが、あなたは結果を選択し、コード、次の試みることができます

+0

それを修正したが、まだ最終的な結果は同じresult.noデータは、私は質問が編集した答えをもう一度試して読んで欠場 – chamara

+0

を設定ohh.i:だから私の提案はこれです – Ankit

1

あなたがtblRevisionStatusにない@Tempにある行のリストが必要な場合は、あなたが簡単に EXCEPT文の

を使用してこれを行うことができます
0

INとDISTICTSを使用しないことをお勧めします。ほとんどの場合、これらはパフォーマンスに悪い影響を与えます。

SELECT 
    tbl.RevisionStatus, 
    tbl.DocTypeID as 'DocType' 
FROM 
    @temp AS tbl 
WHERE NOT EXISTS 
    (
     SELECT 
      NULL 
     FROM 
      tblRevisionStatus 
     WHERE 
      tblRevisionStatus.RevisionStatus=tbl.RevisionStatus 
    ) 
    AND NOT EXISTS 
     (
      SELECT 
       NULL 
      FROM 
       tblRevisionStatus 
      WHERE 
       tblRevisionStatus.DocTypeID=tbl.DocTypeID 
     ) 
関連する問題