SQL은 2000을 사용하고 있구요.
예를 들어 요런 형식의 콜 테이블이 있습니다.
달별로 쌓여 있습니다. 테이블명
StartTime | direction | Number | … |
2013-05-03 09:12:00 | IN | 0 | … |
2013-05-03 11:12:10 | IN | 0 | … |
2013-05-04 17:12:00 | IN | 1126 | … |
2013-05-08 20:12:00 | OUT | 4456 | … |
2013-05-09 10:12:00 | OUT | 7771 | … |
SELECT count(*) FROM 테이블명
WHERE Number <> '0' and StarTime between '2013-05-01 00:00:01' and '2013-05-01 23:59:59' and direction = 'OUT'
그냥 이런식으로 하루씩 검색했는데요
한달치를 일자별로 한번에 뽑을 수 없을까요?
1일 -> 몇개
2일 -> 몇개
.
.
직접 DB관리자가 아니고 ㅠ 무지하다보니 ㅠ 도와주십시오.
Comment 3
-
kravitz
2013.05.24 10:55
-
눈을뜨자
2013.05.24 10:56
SELECT
day(StartTime)
,count(*)
FROM 테이블명
WHERE Number <> '0' and StarTime between '2013-05-01 00:00:00' and '2013-05-31 23:59:59' and direction = 'OUT'
GROUP BY day(StartTime)요렇게 하면 될듯 한데요. 컬럼을 가공을 해야되서 좀 글치만 한달치만 구한다면 괜찮을듯 합니다.
조건은 StartTime 타입이 datetime 여야되는데 만약 아니라면 convert 를 해줘야 하고요...
혹시 더 좋은 방법이 있으신분 알려주세요~ 저도 궁금하네요~~
-
표현중독
2013.05.24 12:50
간단하게 해서 돌려봤는데 잘 되네요 ^^ 답변 너무 감사합니다.
그런데 어차피 Select - count 정도니 DB에 변경이나 영향을 주지는 않겠죠?
그냥 간단하게 ^^
SELECT datepart(dd,StarTime) as [Day]
count(*) as cnt
FROM 테이블명
WHERE Number <> '0'
and StarTime between '2013-05-01 00:00:01'
and '2013-05-01 23:59:59'
and direction = 'OUT'
group by datepart(dd,StarTime)