2009-04-06 6 views
3

보고서를 작성하려고하지만 내 archi nemesis SQL에 문제가 있습니다."date"질문 별 SQL 그룹

나는 거래 마감일이 저장된 테이블을 가지고있다.

나는 한 달이 되니라 내가 한 얼마나 많은 트랜잭션을 알고 싶어 : 나는 오라클을 사용하고

SELECT trunct(closedate, 'MONTH') FROM MY_TRANSACTIONS 

.

는이 같은 목록을 받고 있어요 :

그래서 나는 "생각

2002-09-01 00:00:00.0 
2002-09-01 00:00:00.0 
... 
2002-10-01 00:00:00.0 
2002-10-01 00:00:00.0 
... 
2002-11-01 00:00:00.0 
2002-11-01 00:00:00.0 

등 나는 문장의 마지막에 선택과 GROUP BY()에서 카운트를 추가하는 경우 그 해야만합니다. "그러나 그렇지 않습니다. 내 기록은 각 레코드가 다른 값으로 취급되기 때문입니다. -S

어떤 힌트를 주시겠습니까?

감사합니다.

+0

@Joel : 재 태그에 감사드립니다. 이것은 정말로 PL-SQL입니까? – OscarRyz

+0

@Oscar : 이런 식으로 TRUNC()를 사용하는 것은 Oracle에만 해당됩니다. 그러나 GROUP BY에서 볼 수있는 문제는 공급 업체와 관련이 없습니다. 이것은 SQL 호환 구현이 작동하는 방법입니다. –

답변

11

모든 non-agg 필드로 그룹화하려고합니다. 그리고 당신은 날짜를 자르지 않으려 고합니다. 당신은 그 달의 일부를 원합니다.

그래서 TO_CHAR (하여 DateField, '월')로부터 ... 기

선택 TO_CHAR (하여 DateField, '월'), 수 (*) 같은;

+0

@Arnshea : 고마워요. "datepart"에 해당하는 오라클이 무엇인지 알고 있습니까 ??? – OscarRyz

+0

to_char (datefield, 'Month')가해야합니다. –

+0

@Arnshea : 지난 몇 년 동안 모든 사기꾼이 생각 났으므로 (부분적으로) ... – OscarRyz