比较不存在行的相同 table 中的数据
Comparing data in the same table for non existent rows
我有一个 table,其中包含公司名称和各自公司的联系人。 Type 列有一个 0 或 1,表示它是公司还是个人。每行有一列带有唯一的联系电话。 'person' 行有一个名为 "Company no." 的列,将此人链接到公司。我正在尝试 return 行显示同一 table 中没有任何联系人的公司。不确定如何开始编写此查询。
这样试试:
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);
我有一个 table,其中包含公司名称和各自公司的联系人。 Type 列有一个 0 或 1,表示它是公司还是个人。每行有一列带有唯一的联系电话。 'person' 行有一个名为 "Company no." 的列,将此人链接到公司。我正在尝试 return 行显示同一 table 中没有任何联系人的公司。不确定如何开始编写此查询。
这样试试:
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);