CREATE TABLE [dbo].[Auth_Role_Page](
[role_page_idx] [int] NOT NULL,
[com_code] [nvarchar](5) NULL,
[role_id] [nvarchar](20) NULL,
[page_id] [varchar](8) NULL,
[reg_date] [datetime] NULL,
[reg_userid] [nvarchar](20) NULL,
[pop] [char](1) NULL,
[seq] [int] NULL
) ON [PRIMARY]
위같은 테이블이 있습니다
중복 제거 소스를 구해서 아래 소스를 작동시켜봤는데 각각 아래같은 메세지가 뜹니다.
DELETE FROM [tjm_edms].[dbo].[Auth_Role_Page]
WHERE [role_page_idx] IN (
SELECT A.[role_page_idx] [role_page_idx]
FROM ( SELECT *
FROM [tjm_edms].[dbo].[Auth_Role_Page]
GROUP BY
[com_code]
,[role_id]
,[page_id]
HAVING COUNT(*) > 1
) A
)
열 'tjm_edms.dbo.Auth_Role_Page.role_page_idx'이(가) 집계 함수나 GROUP BY 절에 없으므로 SELECT 목록에서 사용할 수 없습니다.
DELETE FROM [Auth_Role_Page]
WHERE seq IN (
SELECT a.seq AS seq
FROM [Auth_Role_Page] A INNER JOIN (
SELECT MAX(seq) AS seq, [com_code]
,[role_id]
,[page_id], count(*) AS loginCount FROM [Auth_Role_Page]
GROUP BY [com_code]
,[role_id]
,[page_id]
HAVING count(*) >1) B
ON A.[com_code] = B.[com_code] and A.[role_id] = B.[role_id] and A.[page_id] = B.[page_id] and A.seq <> B.seq )
경고: 집계 또는 다른 SET 작업에 의해 Null 값이 제거되었습니다.
(0개 행이 영향을 받음)
Comment 1
-
park87
2014.10.24 09:31
이렇게 하니 작동 된건데...
제대로 된건지 모르겠네요;;;