Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
빠른 답변 해주시길 부탁드립니다.[sql]
디비:오라클 델파이5.0
열두달을 4분기루 나눠서 그룹바이하는 쿼리를 쓸려고 하는데염....
간단하게 할수있는방법이나 노하우 있는분덜 갈켜주세염.....^^
필드명은 buyday이구염.....
date형입니다....
1,2,3=>1
4,5,6=>2
7,8,9=>3
10,11,12=>4이케할라믄.....어케해야하나염?
2
COMMENTS
하눌이
•
2001.09.04 04:36
노력중인 초보 wrote:
> 디비:오라클 델파이5.0
>
> 열두달을 4분기루 나눠서 그룹바이하는 쿼리를 쓸려고 하는데염....
> 간단하게 할수있는방법이나 노하우 있는분덜 갈켜주세염.....^^
> 필드명은 buyday이구염.....
> date형입니다....
> 1,2,3=>1
> 4,5,6=>2
> 7,8,9=>3
> 10,11,12=>4이케할라믄.....어케해야하나염?
select sum(decode(sign(buyday-4),-1,amt,0)) bungi1,
sum(decode(sign(buyday-7),-1,amt,0)-decode(sign(buyday-4),-1,amt,0)) bungi2,
sum(decode(sign(buyday-10),-1,amt,0)-decode(sign(buyday-7),-1,amt,0)) bungi3,
sum(amt-decode(sign(buyday-10),-1,amt,0)) bungi4
from tablename
이런식은 어떨지.. 될법도 한데...
0
0
삭제
수정
댓글
하얀까마귀
•
2001.09.04 00:22
안녕하세요 하얀까마귀 입니다.
약간 까다롭겠네요...
아주 오래전에 사용한 방법중에서 커서 회피라는 말을 듣고 했던게 있습니다.
조금 다르긴 한데.... 괜찮다면 써보세요.. 생각보다는 괜찮은 속도가 나왔던걸로
기억합니다.
이건 약간 설명을 하자면.. 특정한 계산이 필요한 쿼리의 경우
대부분은 전체를 불러와서 임시테이블을 만들던지 아니면 계산을 하게 되는데..
이렇게 되면 속도가 안나오죠..
쿼리에서 해결을 하도록 한적이 있어요.. 서버의 부하가 좀 걸리긴 하지만. 문제가
될정도는 아니였던걸로 기억합니다.
님의 경우에.. ( 제가 디비안본지 1년반이 되어가서리 많이 까먹었거든요. 설명이
미흡하더라도 양해를.. )
날자에서 월을 가져오구요. 이넘을 4로 나눈값을 가져 올수 잇죠? 커리 함수에서요..
((month( buyday )-1) /3) <-- 요렇게 하면 분기별로 0,1,2,3, 가 나오죠..
이값을 2사분기를 원한다면.. -2를 해서 부호에 대해 다시 절대값을 취하면 원하는
분기는 0 나머지는1이 나옵니다. abs(((month( buyday )-1) /3) -2) 여기에 -1해서
절대값을 다시 취하면 원하는분기는 1 나머지는 0가 나오죠.
abs(abs(sign(((month( '05/01/2001' )-1) /3)-2))-1)
에구에구 복잡하다.. 무지복잡해 보이죠???
함수는 찾아보시구요..
abs(abs(sign(((month( '05/01/2001' )-1) /3) -0 ))-1) // 1사분기
abs(abs(sign(((month( '05/01/2001' )-1) /3) -1 ))-1) // 2사분기
abs(abs(sign(((month( '05/01/2001' )-1) /3) -2 ))-1) // 3사분기
abs(abs(sign(((month( '05/01/2001' )-1) /3) -3 ))-1) // 4사분기
가 되겠죠?
이걸 곱해주면 됩니다.. 계산을 해야 되는 값이. buymon 이라면..
select buymon * abs(abs(sign(((month( '05/01/2001' )-1) /3) -0 ))-1) 일사분기,
buymon * abs(abs(sign(((month( '05/01/2001' )-1) /3) -1 ))-1) 이사분기,
buymon * abs(abs(sign(((month( '05/01/2001' )-1) /3) -2 ))-1) 삼사분기,
buymon * abs(abs(sign(((month( '05/01/2001' )-1) /3) -3 ))-1) 사사분기
from 테이블명
where 조건.....
이렇게 하시면 결과 한줄에 사분기 모두 값이 넘어오겠죠.. 이렇게 하시면 인덱스가
그대로 적용되어서 풀스켄 하지 않아도 되구요...
보기보다는 성능이 괜찮으니 애용해 보세요... 여러곳에 적용할수 있을겁니다..
그럼..
그럼 즐거운 시간 되시구요..
- 하얀까마귀 -
노력중인 초보 wrote:
> 디비:오라클 델파이5.0
>
> 열두달을 4분기루 나눠서 그룹바이하는 쿼리를 쓸려고 하는데염....
> 간단하게 할수있는방법이나 노하우 있는분덜 갈켜주세염.....^^
> 필드명은 buyday이구염.....
> date형입니다....
> 1,2,3=>1
> 4,5,6=>2
> 7,8,9=>3
> 10,11,12=>4이케할라믄.....어케해야하나염?
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
김남주
•
2001.09.03 01:52
2
COMMENTS
/
0
LIKES
폼출력시...
초보의비애
•
2001.09.03 21:40
김남주 wrote: > 폼을 통제로 출력을 했는데 그림은 제대로 나오는데 글자가 좀 깨집니다. > 회사에서 출...
김남주
•
2001.09.04 09:35
초보의비애 wrote: > 김남주 wrote: > > 폼을 통제로 출력을 했는데 그림은 제대로 나오는데 글자가 좀 ...
이명호
2001.09.03 00:18
0
COMMENTS
/
0
LIKES
SQL에서 테이블 이름을 파라미터로 처리할수 없나요?
허접한 넘팽이....
2001.09.03 00:10
0
COMMENTS
/
0
LIKES
파일복사에 대해소..갈쳐줌 뻐뻐해줌...
김남주
2001.09.02 22:15
0
COMMENTS
/
0
LIKES
퀵리포트에 대해서...
최부열
•
2001.09.02 21:39
1
COMMENTS
/
0
LIKES
QuickReport의 내용을 그대로 Text로 전환할 수 있을까요?
이성훈
•
2001.09.04 01:13
지금 그럼 작업을 하고 있는데요.. 저도 Tip을 찾아서 해결했습니다. 근데 QuickReport의 내용을 Text로 ...
음대성
•
2001.09.02 19:14
1
COMMENTS
/
0
LIKES
화일 존재여부(알리아스로)
홍성락
•
2001.09.03 20:29
음대성 wrote: > 안녕하세요.... > FileExists 를 사용할경우 디렉토리 내에서의 화일검색은 알겠는데......
노력중인 초보
•
2001.09.02 13:36
2
COMMENTS
/
0
LIKES
빠른 답변 해주시길 부탁드립니다.[sql]
디비:오라클 델파이5.0 열두달을 4분기루 나눠서 그룹바이하는 쿼리를 쓸려고 하는데염.... 간단하게 할수있는방법이나 노하우 있는분덜 갈켜주세염.....^^ 필드명은 buyday이구염..... date형입니다.... 1,2,3=>1 4,5,6=>2 7,8,9=>3 10,1...
하눌이
•
2001.09.04 04:36
노력중인 초보 wrote: > 디비:오라클 델파이5.0 > > 열두달을 4분기루 나눠서 그룹바이하는 쿼리를 ...
하얀까마귀
•
2001.09.04 00:22
안녕하세요 하얀까마귀 입니다. 약간 까다롭겠네요... 아주 오래전에 사용한 방법중에서 커서 회피라...
gusckd1
2001.09.02 11:49
0
COMMENTS
/
0
LIKES
콤포넌트인데 TCollection쪽하구 Index쓰는 쪽이 잘 안돼요..Help me
델초보
•
2001.09.02 08:13
1
COMMENTS
/
0
LIKES
최상위 윈도우가 안돼요.... 흐흐흑...
여영식
•
2001.09.03 18:06
메인 폼의 FormStyle 프로퍼티를 fsStayOnTop으로 하고 하시면 안될까요? 이때 StayOnTop 프로퍼티를 이용...
초보공주
•
2001.09.02 07:45
2
COMMENTS
/
0
LIKES
프로그램이 두번 실행됩니다.. 어떻게 하죠??
장민우
•
2001.09.04 02:47
자료실에 보면 justone 맞나 ? ^^;; 그런 컴퍼가 있써요... 그걸 사용하시면 같은 프로그램이 두번 실행 ...
류종택
•
2001.09.02 08:18
이곳 게시판에서 '중복실행'으로 검색해보세요.. 아래는 제가 사용하는 방법입니다.. begin If Brin...
christians
2001.09.02 07:10
0
COMMENTS
/
0
LIKES
field Main000MForm.LabelEffect1 does not
김춘성
•
2001.09.02 06:26
2
COMMENTS
/
0
LIKES
[질] DLL 폼과 Modal의 관계? (소스)
쩌비
•
2001.09.02 06:39
이건 여러가지 방법이 있어요.. 제가 주로 쓰는 방법은 커스텀 핸들을 사용하는 방법입니다. 즉 커스...
김춘성
•
2001.09.02 23:22
초보라 무슨 말이징 이해가 안가요... Sendmessage PostMessage?? 이게 뭔가요?? 어떻게 간단한 예제...
쩌비
2001.09.02 06:26
0
COMMENTS
/
0
LIKES
이거 좋은방법좀 가르쳐 주세요(일단 제가 알고 있는것 부터)
도와줘요
•
2001.09.02 05:51
3
COMMENTS
/
0
LIKES
다양한방식의조인이필요해요.부탁..
쩌비
•
2001.09.02 06:17
보면 테이블A가 마스터이고 테이블B는 테이블 A SCODE의 1:1 데이타이고 테이블C는 테이블 B I...
도와줘요
•
2001.09.02 06:35
빠진것은,, 테이블 D 에서 PANEL=3이고, CTNO=102 인 것입니다... 쩌비 wrote: > 보면 테이블A가 ...
쩌비
•
2001.09.02 06:42
도와줘요 wrote: > 빠진것은,, > 테이블 D 에서 PANEL=3이고, CTNO=102 인 것입니다... > > > > ...
델처버
•
2001.09.02 04:28
1
COMMENTS
/
0
LIKES
엑세스에서 stored 프로시저를 사용할 수 있나요?(냉무)
코쟁이
•
2001.09.02 05:21
델처버 wrote: >
초보자
•
2001.09.02 03:20
4
COMMENTS
/
0
LIKES
정전시 안전한 DB는 ?
쩌비
•
2001.09.02 03:37
초보자 wrote: > 여기서 보니까, > 인터베이스/MySQL은 정전시 약간의 문제가 > 발생하는군요. > 유료 ...
초보자
•
2001.09.02 03:42
답변 감사... 그러나, 그걸 모르는것은 아니죠. UPS는 당연하지만... UPS는 수명이 있습니다. > 쩌비...
명탁
•
2001.09.23 03:36
초보자 wrote: > 답변 감사... > 그러나, 그걸 모르는것은 아니죠. > UPS는 당연하지만... > UPS는 수...
쩌비
•
2001.09.02 03:52
예로 과거 제가 HP서버를 사용했을때의 경험. UPS가 작동되고 일정시간 즉, 용량이 20%밖에 안 남았을경...
hlyong
2001.09.02 02:49
0
COMMENTS
/
0
LIKES
IE5에서 Save As.... 양병규님 꼭 답줌. 아님다른분이라도
안순규
•
2001.09.01 22:28
1
COMMENTS
/
0
LIKES
델고수님들 도와 주세요 작업을 못하고 있어요!!!!!
홍성락
•
2001.09.02 02:09
안순규 wrote: > 도와 주세요... > Canvas dons't 어쩌구 저쩌구.. 이런 메세지가 계속 나오구 있는데 >...
분조사랑
2001.09.01 22:26
0
COMMENTS
/
0
LIKES
설계하는방법
초급
•
2001.09.01 21:41
1
COMMENTS
/
0
LIKES
component삭제하는 방법좀 갈켜주세요
최용일
•
2001.09.02 00:36
안녕하세요. 최용일입니다. 일부분만 제거하실려면 제거할려고하는 컴포넌트유닛들만 빼버리고 다시 컴...
노력중인 초보
2001/09/02 13:36
Views
185
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 디비:오라클 델파이5.0
>
> 열두달을 4분기루 나눠서 그룹바이하는 쿼리를 쓸려고 하는데염....
> 간단하게 할수있는방법이나 노하우 있는분덜 갈켜주세염.....^^
> 필드명은 buyday이구염.....
> date형입니다....
> 1,2,3=>1
> 4,5,6=>2
> 7,8,9=>3
> 10,11,12=>4이케할라믄.....어케해야하나염?
select sum(decode(sign(buyday-4),-1,amt,0)) bungi1,
sum(decode(sign(buyday-7),-1,amt,0)-decode(sign(buyday-4),-1,amt,0)) bungi2,
sum(decode(sign(buyday-10),-1,amt,0)-decode(sign(buyday-7),-1,amt,0)) bungi3,
sum(amt-decode(sign(buyday-10),-1,amt,0)) bungi4
from tablename
이런식은 어떨지.. 될법도 한데...