주식 차트 프로그램을 만들고 있는데요..
쉽게 생각했는데, 생각보다 시작단계 쿼리부터 막히네요.. ㅠ.ㅠ
쉽게 생각했는데, 생각보다 시작단계 쿼리부터 막히네요.. ㅠ.ㅠ
idx | type | money | amount | date |
42 | 1 | 300000 | 30 | 20150121010101 |
41 | 2 | 300000 | 30 | 20150121010101 |
40 | 1 | 200000 | 20 | 20150120010101 |
39 | 2 | 200000 | 20 | 20150120010101 |
38 | 1 | 100000 | 10 | 20150119010101 |
37 | 2 | 100000 | 10 | 20150119010101 |
36 | 1 | 200000 | 20 | 20150118010101 |
35 | 2 | 200000 | 20 | 20150118010101 |
34 | 1 | 300000 | 30 | 20150117010101 |
33 | 2 | 300000 | 30 | 20150117010101 |
32 | 1 | 400000 | 40 | 20150116010101 |
31 | 2 | 400000 | 40 | 20150116010101 |
30 | 1 | 500000 | 50 | 20150115010101 |
29 | 2 | 500000 | 50 | 20150115010101 |
28 | 1 | 600000 | 60 | 20150114010101 |
27 | 2 | 600000 | 60 | 20150114010101 |
26 | 1 | 700000 | 70 | 20150113010101 |
25 | 2 | 700000 | 70 | 20150113010101 |
24 | 1 | 800000 | 80 | 20150112010101 |
23 | 2 | 800000 | 80 | 20150112010101 |
22 | 1 | 900000 | 90 | 20150111010101 |
21 | 2 | 900000 | 90 | 20150111010101 |
20 | 1 | 1000000 | 100 | 20150110010101 |
19 | 2 | 1000000 | 100 | 20150110010101 |
18 | 1 | 900000 | 90 | 20150109010101 |
17 | 2 | 900000 | 90 | 20150109010101 |
16 | 1 | 800000 | 80 | 20150108010101 |
15 | 2 | 800000 | 80 | 20150108010101 |
14 | 1 | 700000 | 70 | 20150107010101 |
13 | 2 | 700000 | 70 | 20150107010101 |
12 | 1 | 600000 | 60 | 20150106010101 |
11 | 2 | 600000 | 60 | 20150106010101 |
10 | 1 | 500000 | 50 | 20150105010101 |
9 | 2 | 500000 | 50 | 20150105010101 |
8 | 1 | 400000 | 40 | 20150104010101 |
7 | 2 | 400000 | 40 | 20150104010101 |
6 | 1 | 300000 | 30 | 20150103010101 |
5 | 2 | 300000 | 30 | 20150103010101 |
4 | 1 | 200000 | 20 | 20150102010101 |
3 | 2 | 200000 | 20 | 20150102010101 |
2 | 1 | 100000 | 10 | 20150101010101 |
1 | 2 | 100000 | 10 | 20150101010101 |
데이타는 이런 형태로 들어있습니다.
사실 엄청 많은데, 제가 모양만 따와서 추렸습니다.
실제로는 시분초가 제각각이구요.. 0시 0분 0초 이렇게 떨어지는건 없다고 봐야 합니다.
원하는건 간격일과 평균계산일을 입력하면, 해당 간격일 마다 날짜가 조회되면서 그 기간의 평균값이 나오는것입니다.
예를들어, 아래와 같이 지정하면
사실 엄청 많은데, 제가 모양만 따와서 추렸습니다.
실제로는 시분초가 제각각이구요.. 0시 0분 0초 이렇게 떨어지는건 없다고 봐야 합니다.
원하는건 간격일과 평균계산일을 입력하면, 해당 간격일 마다 날짜가 조회되면서 그 기간의 평균값이 나오는것입니다.
예를들어, 아래와 같이 지정하면
간격일 | 2 | |||
평균계산일 | 7 | |||
type | money | amount | date | money, amount 값 |
1 | 285714 | 28.5 | 2015-01-21 | 14~21일의 평균값 |
2 | 285714 | 28.5 | 2015-01-21 | 14~21일의 평균값 |
1 | 450000 | 45 | 2015-01-19 | 12~19일의 평균값 |
2 | 450000 | 45 | 2015-01-19 | 12~19일의 평균값 |
1 | 600000 | 60 | 2015-01-17 | 10~17일의 평균값 |
2 | 600000 | 60 | 2015-01-17 | 10~17일의 평균값 |
1 | 775000 | 77.5 | 2015-01-15 | 08~15일의 평균값 |
2 | 775000 | 77.5 | 2015-01-15 | 08~15일의 평균값 |
1 | 800000 | 80 | 2015-01-13 | 06~13일의 평균값 |
2 | 800000 | 80 | 2015-01-13 | 06~13일의 평균값 |
1 | 725000 | 72.5 | 2015-01-11 | 04~11일의 평균값 |
2 | 725000 | 72.5 | 2015-01-11 | 04~11일의 평균값 |
1 | 550000 | 55 | 2015-01-09 | 02~09일의 평균값 |
2 | 550000 | 55 | 2015-01-09 | 02~09일의 평균값 |
1 | 400000 | 40 | 2015-01-07 | 전달30~07일의 평균값 |
2 | 400000 | 40 | 2015-01-07 | 전달30~07일의 평균값 |
1 | 277777 | 27.7 | 2015-01-05 | 전달28~05일의 평균값 |
2 | 277777 | 27.7 | 2015-01-05 | 전달28~05일의 평균값 |
1 | 200000 | 20 | 2015-01-03 | 전달26~03일의 평균값 |
2 | 200000 | 20 | 2015-01-03 | 전달26~03일의 평균값 |
1 | 100000 | 10 | 2015-01-01 | 전달24~01일의 평균값 |
2 | 100000 | 10 | 2015-01-01 | 전달24~01일의 평균값 |
이런 값이나와야 하구요..
간격일 | 7 | |||
평균계산일 | 7 | |||
type | money | amount | date | money, amount 값 |
1 | 220000 | 22 | 2015-01-21 | 15~21일의 평균값 |
2 | 220000 | 22 | 2015-01-21 | 15~21일의 평균값 |
1 | 814285 | 81.4 | 2015-01-14 | 08~14일의 평균값 |
2 | 814285 | 81.4 | 2015-01-14 | 08~14일의 평균값 |
1 | 400000 | 40 | 2015-01-07 | 01~07일의 평균값 |
2 | 400000 | 40 | 2015-01-07 | 01~07일의 평균값 |
마지막 데이타 모양 샘플은
간격일 | 3 | |||
평균계산일 | 30 | |||
type | money | amount | date | money, amount 값 |
1 | 500000 | 50 | 2015-01-21 | 전달21~21일의 평균값 |
2 | 500000 | 50 | 2015-01-21 | 전달21~21일의 평균값 |
1 | 526315 | 52.6 | 2015-01-19 | 전달19~19일의 평균값 |
2 | 526315 | 52.6 | 2015-01-19 | 전달19~19일의 평균값 |
1 | 587500 | 58.7 | 2015-01-16 | 전달16~16일의 평균값 |
2 | 587500 | 58.7 | 2015-01-16 | 전달16~16일의 평균값 |
1 | 607692 | 60.7 | 2015-01-13 | 전달13~13일의 평균값 |
2 | 607692 | 60.7 | 2015-01-13 | 전달13~13일의 평균값 |
1 | 581818 | 58.1 | 2015-01-10 | 전달10~10일의 평균값 |
2 | 581818 | 58.1 | 2015-01-10 | 전달10~10일의 평균값 |
1 | 400000 | 40 | 2015-01-07 | 전달07~07일의 평균값 |
2 | 400000 | 40 | 2015-01-07 | 전달07~07일의 평균값 |
1 | 250000 | 25 | 2015-01-04 | 전달04~04일의 평균값 |
2 | 250000 | 25 | 2015-01-04 | 전달04~04일의 평균값 |
1 | 100000 | 10 | 2015-01-01 | 전달01~04일의 평균값 |
2 | 100000 | 10 | 2015-01-01 | 전달01~04일의 평균값 |
이런 형태로 출력이 되어야 합니다.
각 기간별 평균을 어떻게 구해야 할까요?
고수님들의 답변 기다리겠습니다..
==================================================================
CREATE TABLE [dbo].[TEST](
[idx] [bigint] IDENTITY(1,1) NOT NULL,
[TYPE] [char](1) NOT NULL,
[MONEY] [int] NOT NULL,
[AMOUNT] [int] NOT NULL,
[DATE] [varchar](20) NOT NULL
)
INSERT TEST VALUES ('1',300000,30,'20150121010101');
INSERT TEST VALUES ('2',300000,30,'20150121010101');
INSERT TEST VALUES ('1',200000,20,'20150120010101');
INSERT TEST VALUES ('2',200000,20,'20150120010101');
INSERT TEST VALUES ('1',100000,10,'20150119010101');
INSERT TEST VALUES ('2',100000,10,'20150119010101');
INSERT TEST VALUES ('1',200000,20,'20150118010101');
INSERT TEST VALUES ('2',200000,20,'20150118010101');
INSERT TEST VALUES ('1',300000,30,'20150117010101');
INSERT TEST VALUES ('2',300000,30,'20150117010101');
INSERT TEST VALUES ('1',400000,40,'20150116010101');
INSERT TEST VALUES ('2',400000,40,'20150116010101');
INSERT TEST VALUES ('1',500000,50,'20150115010101');
INSERT TEST VALUES ('2',500000,50,'20150115010101');
INSERT TEST VALUES ('1',600000,60,'20150114010101');
INSERT TEST VALUES ('2',600000,60,'20150114010101');
INSERT TEST VALUES ('1',700000,70,'20150113010101');
INSERT TEST VALUES ('2',700000,70,'20150113010101');
INSERT TEST VALUES ('1',800000,80,'20150112010101');
INSERT TEST VALUES ('2',800000,80,'20150112010101');
INSERT TEST VALUES ('1',900000,90,'20150111010101');
INSERT TEST VALUES ('2',900000,90,'20150111010101');
INSERT TEST VALUES ('1',1000000,100,'20150110010101');
INSERT TEST VALUES ('2',1000000,100,'20150110010101');
INSERT TEST VALUES ('1',900000,90,'20150109010101');
INSERT TEST VALUES ('2',900000,90,'20150109010101');
INSERT TEST VALUES ('1',800000,80,'20150108010101');
INSERT TEST VALUES ('2',800000,80,'20150108010101');
INSERT TEST VALUES ('1',700000,70,'20150107010101');
INSERT TEST VALUES ('2',700000,70,'20150107010101');
INSERT TEST VALUES ('1',600000,60,'20150106010101');
INSERT TEST VALUES ('2',600000,60,'20150106010101');
INSERT TEST VALUES ('1',500000,50,'20150105010101');
INSERT TEST VALUES ('2',500000,50,'20150105010101');
INSERT TEST VALUES ('1',400000,40,'20150104010101');
INSERT TEST VALUES ('2',400000,40,'20150104010101');
INSERT TEST VALUES ('1',300000,30,'20150103010101');
INSERT TEST VALUES ('2',300000,30,'20150103010101');
INSERT TEST VALUES ('1',200000,20,'20150102010101');
INSERT TEST VALUES ('2',200000,20,'20150102010101');
INSERT TEST VALUES ('1',100000,10,'20150101010101');
INSERT TEST VALUES ('2',100000,10,'20150101010101');
각 기간별 평균을 어떻게 구해야 할까요?
고수님들의 답변 기다리겠습니다..
==================================================================
CREATE TABLE [dbo].[TEST](
[idx] [bigint] IDENTITY(1,1) NOT NULL,
[TYPE] [char](1) NOT NULL,
[MONEY] [int] NOT NULL,
[AMOUNT] [int] NOT NULL,
[DATE] [varchar](20) NOT NULL
)
INSERT TEST VALUES ('1',300000,30,'20150121010101');
INSERT TEST VALUES ('2',300000,30,'20150121010101');
INSERT TEST VALUES ('1',200000,20,'20150120010101');
INSERT TEST VALUES ('2',200000,20,'20150120010101');
INSERT TEST VALUES ('1',100000,10,'20150119010101');
INSERT TEST VALUES ('2',100000,10,'20150119010101');
INSERT TEST VALUES ('1',200000,20,'20150118010101');
INSERT TEST VALUES ('2',200000,20,'20150118010101');
INSERT TEST VALUES ('1',300000,30,'20150117010101');
INSERT TEST VALUES ('2',300000,30,'20150117010101');
INSERT TEST VALUES ('1',400000,40,'20150116010101');
INSERT TEST VALUES ('2',400000,40,'20150116010101');
INSERT TEST VALUES ('1',500000,50,'20150115010101');
INSERT TEST VALUES ('2',500000,50,'20150115010101');
INSERT TEST VALUES ('1',600000,60,'20150114010101');
INSERT TEST VALUES ('2',600000,60,'20150114010101');
INSERT TEST VALUES ('1',700000,70,'20150113010101');
INSERT TEST VALUES ('2',700000,70,'20150113010101');
INSERT TEST VALUES ('1',800000,80,'20150112010101');
INSERT TEST VALUES ('2',800000,80,'20150112010101');
INSERT TEST VALUES ('1',900000,90,'20150111010101');
INSERT TEST VALUES ('2',900000,90,'20150111010101');
INSERT TEST VALUES ('1',1000000,100,'20150110010101');
INSERT TEST VALUES ('2',1000000,100,'20150110010101');
INSERT TEST VALUES ('1',900000,90,'20150109010101');
INSERT TEST VALUES ('2',900000,90,'20150109010101');
INSERT TEST VALUES ('1',800000,80,'20150108010101');
INSERT TEST VALUES ('2',800000,80,'20150108010101');
INSERT TEST VALUES ('1',700000,70,'20150107010101');
INSERT TEST VALUES ('2',700000,70,'20150107010101');
INSERT TEST VALUES ('1',600000,60,'20150106010101');
INSERT TEST VALUES ('2',600000,60,'20150106010101');
INSERT TEST VALUES ('1',500000,50,'20150105010101');
INSERT TEST VALUES ('2',500000,50,'20150105010101');
INSERT TEST VALUES ('1',400000,40,'20150104010101');
INSERT TEST VALUES ('2',400000,40,'20150104010101');
INSERT TEST VALUES ('1',300000,30,'20150103010101');
INSERT TEST VALUES ('2',300000,30,'20150103010101');
INSERT TEST VALUES ('1',200000,20,'20150102010101');
INSERT TEST VALUES ('2',200000,20,'20150102010101');
INSERT TEST VALUES ('1',100000,10,'20150101010101');
INSERT TEST VALUES ('2',100000,10,'20150101010101');
.