MSSQL 전주 구하기 및 칼럼 정보 합치기

통계 화면을 하다보면 전주의 정보를 보고 싶다. 전전주의 정보를 보고 싶다. 금주의 정보를 보고 싶다. 등등의 많은 요청 사항들이 있습니다.
이런 요청 사항은 어떻게 처리해야 할까요?


하여 여기서는 MSSQL 전주 구하기 및 칼럼 정보 합치기에 대해서 알아보겠습니다.
또한, Row로 구성된 칼럼 값들을 합쳐서 하나의 문자열로 나타내는 참고 쿼리도 알아보겠습니다.





▶ 전주 구하기

먼저 오늘 기준 전전전주 일요일, 전전주 일요일, 전주 일요일, 해당주 일요일을 구하는 쿼리 입니다.

SELECT CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(d, 0, GETDATE()) / 7 , -15), 120)  -- 전전전주 일요일
SELECT CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(d, 0, GETDATE()) / 7 , -8), 120)  -- 전전주 일요일
SELECT CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(d, 0, GETDATE()) / 7 , -1), 120)  -- 전주 일요일
SELECT CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(d, 0, GETDATE()) / 7 , 6), 120)  -- 해당주 일요일

위의 쿼리를 참고하면 많은 응용이 가능 합니다.


▶ Row 칼럼 값들 합치기

다음으로 Row로 구성된 칼럼 값들을 합쳐서 하나의 문자열을 만드는 쿼리 입니다.
STUFF라는 예약어를 활용하여 한줄의 문자열로 표시 합니다.




-- 임시 테이블 생성
DECLARE @TABLE TABLE
(
 ID  INT
 , Title VARCHAR(10)
)

-- 테스트 값 입력
INSERT INTO @TABLE (ID, Title) VALUES (11, '가1')
INSERT INTO @TABLE (ID, Title) VALUES (22, '나2')
INSERT INTO @TABLE (ID, Title) VALUES (22, '다3')
INSERT INTO @TABLE (ID, Title) VALUES (33, '라4')
INSERT INTO @TABLE (ID, Title) VALUES (33, '마5')
INSERT INTO @TABLE (ID, Title) VALUES (33, '바6')
INSERT INTO @TABLE (ID, Title) VALUES (44, '사7')
INSERT INTO @TABLE (ID, Title) VALUES (44, '아8')
INSERT INTO @TABLE (ID, Title) VALUES (44, '자9')
INSERT INTO @TABLE (ID, Title) VALUES (44, '차10')

SELECT * FROM

SELECT
 DISTINCT ID
 ,
  STUFF((
    SELECT
     ',' + Title -- 콤마를 구분자로 문자열 연결
    FROM @TABLE B
    WHERE B.ID = A.ID FOR XML PATH(''))
  ,1,1,'') AS NAME
FROM @TABLE A




이상으로 MSSQL 전주 구하기 및 칼럼 정보 합치기에 대해서 알아보았습니다.
오늘도 즐거운 하루되시길 기원 합니다.

댓글

이 블로그의 인기 게시물

껌 떼는 법 (완벽 제거)

석청 효능 및 석청 부작용 알아보기

인성검사 팁 (인성검사 합격)