SQL2000 server에서 한테이블에서 코드별로 전일까지의 누계와 금일금액을 동시에 쿼리 할 수 있습니까? 죄송합니다. 실력이 좀 딸려서....
아래에서 조건이름을 어떻게 하면 되겠는데.....
select acode, aname, T.a_kum S2, akum
From Table1, (select sum(akum) a_kum from Table1 where aday < '20021206' and acode = '조건이름') T
where aday = '20021207'
Table1
aday 날짜
acode 코드
aname 이름
akum 금액
20021205 01 서울 10000
20021205 02 부산 15000
20021205 03 경기 20000
20021206 01 서울 20000
20021206 02 부산 10000
20021206 03 경기 15000
20021207 01 서울 30000
20021207 02 부산 5000
20021207 03 경기 12000
20021207 04 제주 12000
결과값
코드 이름 전일까지누계 금일금액
01 서울 30000 30000
02 부산 25000 5000
03 경기 35000 12000
04 제주 0 12000
From Table1,
(select sum(akum) a_kum from Table1 where aday < '20021206' and acode = '조건이름') T
where aday = '20021207'
근데 20021206일 전에꺼를 몽땅 더하나요?? 자료가 많으면 곤란한데...
위에꺼를 바꾸면 아래와 같이...바꿀려고 했는데...
좀이상한게 있네요..하루에 같은 acode는 하나바께 자료가 없나요??
(전 있다고 가정할랍니다.)
같은 테이블 두개 쓰신건 좋은데 이렇게 쓰게 된다면 어느쪽으로 아웃조인을
거실건지 확실히 하셔야 합니다..둘중에 하나라도 자료가 있으면 나와야 하자
나요??(둘중:누계와 오늘금액)이렇게 쿼리를 짜면 안되구요.
acode가 정의 되어있는 테이블이 있습니까 가령 이렇게 생긴.....
(밑에 한글명이 있는걸보니 없을듯...)
acode_table
acode aname
01 서울
02 부산
03 경기
04 제주
위와 같은 테이블이 하나 있어야 합니다.
이런 테이블구조가 맞겠죠..
그리하여..
select A.acode, A.aname, C.a_kum , B.a_kum_now
From acode_table A,
(select sum(akum) a_kum_now from Table1 where aday = '20021207') B,
(select sum(akum) a_kum from Table1 where aday < '20021206' and acode = '조건이름') C
where A.acode = B.acode(+)
and A.acode = C.acode(+) <- 오라클 문법 아웃조인
이처럼 구함 될것같네여..
만약에 이렇게 짠다면???
select B.acode, B.aname, C.a_kum , B.a_kum_now
From
(select sum(akum) a_kum_now from Table1 where aday = '20021207') B,
(select sum(akum) a_kum from Table1 where aday < '20021206' and acode = '조건이름') C
where B.acode = C.acode(+)
만약에 이와 같이 쿼리를 짜신다면 20021207일로 특정지역에 들어온 자료가
없다면 누계가 있어도 누계는 보이지 않게 됩니다. 반데로 잡아도 마찬가지입니다..그래서 항상 자료가 존재하는 코드 테이블을 기준으로 잡는거지요..
쿼리에 불가능이란 없다...크하하하핳하하...