2013-10-23 52 views
0

存在刪除重複記錄我有2臺EnquiryMaster和要求。 我想從表EnquiryMaster刪除重複的公司,其enqiryid不要求表沒有在其他表

CREATE TABLE [dbo].[EnquiryMaster](
[EnquiryId] [int] IDENTITY(1,1) NOT NULL, 
[orgid] [int] NULL, 
[uid] [int] NULL, 
[Company] [varchar](160) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, 
[HeadOfficeAddress] [varchar](460) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, 
CONSTRAINT [PK_EnquiryMaster] PRIMARY KEY CLUSTERED 
    (
[EnquiryId] ASC 
    )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
    ) ON [PRIMARY] 


    CREATE TABLE [dbo].[Requirement](
[RequirementID] [int] IDENTITY(1,1) NOT NULL, 
[uid] [int] NULL, 
[orgid] [int] NULL, 
[EnquiryID] [int] NULL, 
[Company] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, 

    CONSTRAINT [PK_Requirement] PRIMARY KEY CLUSTERED 
    (
[RequirementID] ASC 
    )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] 
    ) ON [PRIMARY] 
+0

你的意思是你想刪除重複的公司或EnquiryMaster餐桌的全行那裏EnquiryID不要求存在嗎? – iceheaven31

+0

重複記錄的整行 – user2147357

+0

我有兩行與公司「Infosys」。我想刪除1,並且只保留其查詢ID不在要求表 – user2147357

回答

0
DELETE FROM [dbo].[EnquiryMaster] 
WHERE [EnquiryId] NOT IN 
(SELECT [EnquiryID] FROM [dbo].[Requirement]) 

存在,但你爲什麼叫這樣的行爲重複,目前尚不清楚。

UPD。考慮重複。

DELETE T1 
FROM dbo.EnquiryMaster T1 
WHERE EXISTS (
    SELECT 1 
    FROM dbo.EnquiryMaster T2 
    WHERE T1.Company = T2.Company AND T1.EnquiryId <> T2.EnquiryId 
) AND T1.EnquiryId NOT IN (
    SELECT EnquiryID 
    FROM dbo.Requirement 
) 
+0

中的我在EnquiryMaster表中具有公司「Infosys」的2行。我想刪除1並僅保留其查詢ID在需求表中的那個 – user2147357

+0

查看更新的答案。 – GriGrim

0

從EnquiryMaster E1刪除其中存在(來自EnquiryMaster E2 選擇1其中E1.Company = E2.Company和E1.EnquiryId <> E2.EnquiryId) 和E1.EnquiryId不在(從要求選擇EnquiryId )