database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6908 게시물 읽기
No. 6908
MS-SQL 날짜 관련 쿼리 질문
작성자
도와주세요
작성일
2015-05-11 11:46
조회수
6,742
안녕하세요.
 
reg_dt 가
3주전 (3주전 월-일)
2주전 (2주전 월-일)
1주전 (1주전 월-일)
일요일(이번주)
토요일(이번주)
금요일(이번주)
목요일(이번주)
수요일(이번주)
화요일(이번주)
월요일(이번주)
쿼리로 위 조건별로 COUNT 값을 구하고 싶습니다.
 
쿼리 부탁 드립니다.
감사합니다.
 
이 글에 대한 댓글이 총 2건 있습니다.
-- 우선 이거 부터 보시고...
SELECT GETDATE()
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 - 7*0, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_월요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 - 7*1, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 일주전_월요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 - 7*2, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 이주전_월요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 - 7*3, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 삼주전_월요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 0, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_월요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 1, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_화요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 2, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_수요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 3, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_목요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 4, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_금요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 5, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_토요일
, DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 6, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) AS 금주_일요일
;
 
-- 위의 값을을 이용해서 일주일 전 것들 세기
SELECT COUNT(*)
FROM tbl
WHERE 
    DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 - 7*1, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) <= reg_dt -- 일주전 월요일부터
AND reg_dt < DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 - 7*0, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) -- 금주 월요일 직전까지
;
 
-- 위의 값을을 이용해서 금주 수요일 세기
SELECT COUNT(*)
FROM tbl
WHERE 
    DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 2, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) <= reg_dt -- 일주 수요일부터
AND reg_dt < DATEADD( DAY, ( 8 - DATEPART( WEEKDAY, GETDATE() ) ) % 7 - 6 + 3, DATEADD( DAY, DATEDIFF( DAY, 0, GETDATE() ), 0 ) ) -- 금주 목요일 직전까지
;
 
우욱님이 2015-05-11 14:20에 작성한 댓글입니다. Edit

 답변 대단히 감사합니다. 

정리해서 해결 해 볼게요.. 감사합니다.

도와주세요님이 2015-05-11 18:37에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6911안녕하세요 쿼리질문좀 드립니다. [1]
투루로맨스
2015-05-18
6408
6910조회쿼리 만들기. [2]
초보입니다.
2015-05-18
7733
6909업데이트 쿼리문 질문입니다. [4]
코우지
2015-05-12
5230
6908MS-SQL 날짜 관련 쿼리 질문 [2]
도와주세요
2015-05-11
6742
6907오라클에서 mssql로 쿼리 변환 [2]
yj
2015-05-06
7973
6906MSSQL C programming
과과곽
2015-05-01
4937
6904쿼리 문의
김영희
2015-04-29
5183
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.055초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다