2016-04-04 12 views
0

私は、それぞれの会社の会社名と連絡先の両方を持つテーブルを持っています。タイプ列には、会社か人かを示す0または1があります。各行には一意の連絡先番号の列があります。 「人物」行には「会社名」という列があります。その人物を会社にリンクさせる。私は同じテーブルに連絡先のない会社を示す行を返そうとしています。このクエリの作成を開始する方法もわかりません。存在しない行に対して同じテーブルのデータを比較する

+0

あなたが本当にあなたのテーブルのデザインを変更する必要があります! 1つのテーブルで異なるデータにミックスしないでください! – Shnugo

+0

これは箱の中のMicrosoftのテーブルです...私のデザインではありません... –

+0

このテーブルに固執しなければならないのならもちろん...テーブルの構造とサンプルデータと期待される出力を提供してください。あなたはこれまでに何を試しましたか? – Shnugo

答えて

1

はこのようにそれを試してみてください。

DECLARE @tbl TABLE(ContactNo INT, Name VARCHAR(100), [Type] INT,CompanyNo INT); 
INSERT INTO @tbl VALUES 
(100,'ACME, Inc.',0,100) 
,(200,'Bob Smith',1,100) 
,(300,'John Doe',1,100) 
,(400,'Widget World',0,400) 
,(500,'Fishing, Inc.',0,500) 
,(600,'Jane Doe',1,500); 

WITH TheCompanies AS 
(
    SELECT * 
    FROM @tbl AS tbl 
    WHERE tbl.[Type]=0 
) 
SELECT * 
FROM TheCompanies 
WHERE NOT EXISTS(SELECT 1 FROM @tbl WHERE [Type]=1 AND CompanyNo=TheCompanies.CompanyNo); 
+0

ありがとうございました。 。できる人。できない人は教えてください。あなたは今日私に教えてくれました。 –

+0

@CraigZirnheld心配しないで、ハッピーコーディング:-) – Shnugo

関連する問題