DATABASE

mssql 개인적으로 기억할 query

gold_dragon 2021. 5. 2. 19:23

오늘 날짜 데이터 가져오기

INSERT INTO 테이블명 (컬럼명)

SELECT 컬럼명

FROM 테이블명

WHERE (convert(varchar(8), CreatedDatetime, 112) = convert(varchar(8), getdate(), 112));

 

최신 날짜로 데이터 가져오기

SELECT 컬럼명

FROM 테이블명

WHERE 날짜컬럼명 = (SELECT MAX(날짜컬럼명) FROM 테이블명);

 

중복 데이터 무시하고 테이블에 insert

INSERT INTO 테이블명 컬럼명

SELECT 컬럼명 FROM 테이블명 as A

WHERE 날짜컬럼명 = (SELECT MAX(날짜컬럼명) FROM 테이블명) AND NOT EXISTS

(SELECT 컬럼명 FROM 테이블명 as B WHERE 조건문);

 

중복되는 데이터 찾기

ex)

SELECT [Name], [Domain], count(*) as count FROM [Hairbot].[dbo].[testTable] WHERE CreatedDatetime = (SELECT MAX(CreatedDatetime) FROM testTable) GROUP BY [Name], [Domain] ORDER BY [count] desc

 

해당 날짜의 최신 시간 데이터 가져오기

ex)

SELECT A.[Idx], A.[DataAreaId], A.[Domain], A.[Name], A.[SalePrice], B.[ItemCode]

FROM [Hairbot].[dbo].[SiteProducts] A

INNER JOIN [Hairbot].[dbo].[Mapping] B

ON A.Name = B.Name and A.Domain = B.Domain

WHERE CreatedDatetime = (SELECT MAX(CreatedDatetime) FROM [Hairbot].[dbo].[SiteProducts]

WHERE (convert(varchar(8), CreatedDatetime, 112) = '20210402'));

 

해당 주의 월요일 구하기

ex)

SELECT [Idx] ,[DataAreaId] ,[Domain] ,[Name] ,[RegPrice] ,[SalePrice] ,[MapCheck] ,[CreatedDatetime]

FROM [Hairbot].[dbo].[SiteProducts]

WHERE CreatedDatetime = (SELECT DATEADD(wk, DATEDIFF(wk, 0, '20210407'), 0));