안녕하세요 검색으로 찾아보다 어떤 식으로 생각해야하는지 방향을 잘 못잡겠어서 이렇게 질문 올립니다.
너무 초보적인 질문이 아닌가 싶네요
테이블은
장치idx data 날짜(datetime) 과 같은 형태로 구분되어있고
데이터는 하루에 144번 들어옵니다.
데이터 성격이 밤12시에 값이 리셋되고 하루 내내 누적되는 형태라
1년간의 데이터를 그래프 형태로 다른 프로그램에서 그려줘야 하는 상황입니다.
결국 하루하루 누적 그래프를 그릴려면 하루중 가장 마지막 데이터만 구하면 되는 상황인데 어떤식으로 쿼리를 작성해야할지 감이 잘 안와서요
정확한 쿼리가 아니라 생각해야하는 방향만 제시해주셔도 감사할꺼 같아요
Comment 3
-
짱나부러
2015.09.11 17:42
-
처리짱
2015.09.14 17:23
SELECT MAX(DATE) as DATE
FROM 테이블
GROUP BY CONVERT(NVARCHAR(20), DATE, 112)
이런식으로 하면 하루의 마지막 날짜는 구해 질거 같습니다.
-
한태
2016.03.30 19:53
create index lasttime_time_data on lasttime(time,data)insert into lasttime values('aaa', '2016-02-28 10:00:00'),('bbb', '2016-02-28 20:00:00'),('ccc', '2016-02-29 10:00:00'),('ddd', '2016-02-29 20:00:00'),('eee', '2016-03-01 10:00:00'),('fff', '2016-03-01 20:00:00'),('ggg', '2016-03-02 10:00:00'),('hhh', '2016-03-02 20:00:00'),('iii', '2016-03-03 10:00:00'),('jjj', '2016-03-03 20:00:00'),('kkk', '2016-03-04 10:00:00'),('lll', '2016-03-04 20:00:00'),('mmm', '2016-03-05 10:00:00'),('nnn', '2016-03-05 20:00:00')select a.data, b.mtfrom lasttime a inner join( select MAX(time) mtfrom lasttimegroup by CONVERT(NVARCHAR(20), time, 112)) bon a.time=b.mt위의 쿼리를 통해 하루 중 마지막 데이터를 구하고 조인하였습니다.
음.. 하루 중 마지막 데이터만 필요하시다 하면 쿼리로도 풀 수 있겠지만....
하루 중 마지막 데이터만 저장하는 테이블을 따로 두어
if ( 하루 중 마지막 = true ) insert table
해서 보여주는것도 방법일 것 같습니다..
조회 조건에 따라 컬럼을 추가 하는것도 좋을거 같습니다. (예: year, month)
쿼리는 다음 분이 만들어 주실거에요~