|
하안인 님이 쓰신 글 :
: sQL문으로 다음과 같은 결과값이 나오도록 퀴리문을 작성하려고 합니다.
:
: 원테이타에는
: 날자(date) 시간(time) 이름(name) 통화시간(usetime) 구분1(Gu1) 구분2(gu2)
: 2003-09-16 14:30:20 홍길동 30 A그룹 가조
: 2003-09-16 14:30:20 홍길동 30 B그룹 가조
:
: 위와 같은 데이타를 이름에 대한 시간별 통화기록을 작성하고자
:
: select name, sum(iif(gu1="A그룹" and mid(time,1,2) = "10",1,0)) as A10
: ,sum(iif(gu1="A그룹" and mid(time,1,2) = "11",1,0)) as A10
: ...
: , sum(iif(gu1="B그룹" and mid(time,1,2)="10",1,0)) as B10
: ..
: from tb1 group by name
:
: 이렇게 까지 하면 구분1에 대한 시간별로
: name A10 A11 ..... B10 B11
: 홍길동 4 2 .... 2 3
:
: 위와 같이 퀴리를 가공하여 퀵리포트로 데이타를 표현할수 있는데.
:
: 문제는 통화시간도 표시하려고 합니다. 시간대별로
:
: 위의 퀴리는 이름에 대한 시간대별,구분1에 대한 퀴리의 개수만을 작성한것인데
:
: 시간대별의 통화합계까지 구하려면 어떻게 추가해야 하나요.
: 위의 퀴리에서 조건을 주는 함수가 있으면 될텐데...
:
: 궁극적으로 하려는 것은 이름별로 시간대별로 구분에 대한 내용의 개수와 통화시간을
: 계산하려는 퀴리를 작성하려고 합니다.
:
:
select name,
sum(iif(gu1="A그룹" and mid(time,1,2) = "10",1,0)) as A10,
sum(iif(gu1="A그룹" and mid(time,1,2) = "10",usetime,0)) as A10_time,
sum(iif(gu1="A그룹" and mid(time,1,2) = "11",1,0)) as A11,
sum(iif(gu1="A그룹" and mid(time,1,2) = "11",usetime,0)) as A11_time,
...
sum(iif(gu1="B그룹" and mid(time,1,2)="10",1,0)) as B10,
sum(iif(gu1="B그룹" and mid(time,1,2)="10",usetime,0)) as B10_time,
...
from tb1 group by name
횟수를 구할 때 1를 합한 것처럼 통화시간에는 통화시간의 값을 가지고 있는 usetime을
합하면 될 것 같습니다.
|