2013-10-23 6 views
0

2 개의 테이블 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

EnquiryID가 존재하지 않는 EnquiryMaster 테이블에서 중복 회사 또는 전체 행을 삭제 하시겠습니까? – iceheaven31

+0

중복 된 레코드의 전체 행 – user2147357

+0

회사 "Infosys"와 2 행이 있습니다. 1을 삭제하고 조회 ID가 요구 사항 테이블에없는 것만 유지하려고합니다. – user2147357

답변

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

에 존재하지 않는 테이블 EnquiryMaster에서 중복 회사를 삭제할하지만 중복과 같은 행을 부르는 이유는 분명하지 않다.

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

및 E1.EnquiryId 없음을 (요구로부터 EnquiryId을 선택 어디에 존재하는 (단 E1.Company = E2.Company 및 E1.EnquiryId <> E2.EnquiryId EnquiryMaster E2 1 선택) EnquiryMaster E1에서 삭제)

관련 문제