database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 5895 게시물 읽기
No. 5895
MIN, MAX 날짤 한번에 가져 올 수 있는 쿼리?
작성자
새로운방법(wolfmax)
작성일
2011-05-25 11:07ⓒ
2011-05-25 11:14ⓜ
조회수
7,199

아래와 같은 매 시간 리포트 테이블이 있습니다.

  MinV         MaxV                    MinTime                                  MaxTime

-32673     31258     2011-05-24 14:30:18.000     2011-05-24 14:27:23.000
-32090     32328     2011-05-24 21:23:28.000     2011-05-24 21:45:37.000
-32724     32752     2011-05-24 22:40:25.000     2011-05-24 22:57:19.000
-32645     32745     2011-05-24 23:12:46.000     2011-05-24 23:00:14.000
-29316     27671     2011-05-24 16:34:24.000     2011-05-24 15:33:16.000
-30567     32678     2011-05-24 20:55:28.000     2011-05-24 20:57:14.000
 

        DiffMinV   DiffMaxV            DiffMinTime                         DiffMaxTime

        -46964     61726     2011-05-24 14:19:44.000     2011-05-24 14:19:50.000
       -55024     61726     2011-05-24 21:15:34.000     2011-05-24 21:13:18.000
       -50188     61726     2011-05-24 22:31:55.000     2011-05-24 22:01:04.000
       -61287     61726     2011-05-24 23:02:21.000     2011-05-24 23:01:09.000
       -55024     39343     2011-05-24 15:33:19.000     2011-05-24 15:33:31.000
       -48576     61725     2011-05-24 20:59:27.000     2011-05-24 20:53:45.000
 

위는 하나의 테이블 입니다.

 

 

하루중에

min(MinV), MinTime

max(MaxV), MaxTime

min(DiffMinV), DiffMinTime

max(DiffMaxV), DiffMaxTime

 

을 한 쿼리로 한번에 구할 수 있는 방법이 없나요?

 

지금은 그냥

쿼리 네번 날립니다.

SELECT top 1
      [MinV]
     
      ,[MinTime]     
    
  FROM ReportHourTable   where   [_oleReportDateTime]>= '2011-5-24 0:0:0' and [_oleReportDateTime]<= '2011-5-24 23:0:0'   and   _ID=1 order by [MinV] asc

SELECT top 1
      [MaxV]
     
      ,[MaxTime]     
    
  FROM ReportHourTable   where   [_oleReportDateTime]>= '2011-5-24 0:0:0' and [_oleReportDateTime]<= '2011-5-24 23:0:0'   and   _ID=1 order by [Max] desc

.

.

 

좀 좋은 방법 없을까요?

 

이 글에 대한 댓글이 총 2건 있습니다.

SELECT min([MinV])    MinV
     , min([MinTime]) MinTime
     , max([MaxV])    MaxV
     , max([MaxTime]) MAxTime
  FROM ReportHourTable
 WHERE [_oleReportDateTime] >= '2011-5-24 0:0:0'
   AND [_oleReportDateTime] <= '2011-5-24 23:0:0'
   AND _ID                   = 1

 

 굳이 order by 를 쓸 필요 없이 간단하게 생각하시면 될 듯......

知音(sunnylee72)님이 2011-05-26 11:43에 작성한 댓글입니다.
이 댓글은 2011-05-26 11:43에 마지막으로 수정되었습니다.

위와 같이 하면

시간들이 맞지 않게 나타납니다.

최소값과, 최소값일때 시간을 가져오고,

최대값과, 최대값일때 시간을 가져 와야 되는데,

 

최소, 최대 값과, 시간의 최소, 최대 값을 가져 오네요...

 

정말 방법이 없을까요?

새로운방법(wolfmax)님이 2011-06-01 10:03에 작성한 댓글입니다.
이 댓글은 2011-06-01 10:19에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5898ms-sql primary key 컬럼 에 대한 중복 entity 관련 질문.
신희창
2011-05-27
7694
5897년월 목록을 가지고 오고 싶어요.. [1]
김현지
2011-05-27
7311
5896쿼리 에러 ㅠㅠ [1]
그룹바이
2011-05-25
6657
5895MIN, MAX 날짤 한번에 가져 올 수 있는 쿼리? [2]
새로운방법
2011-05-25
7199
5894기존테이블 신규컬럼추가후 숫자를 순차적으로 넣기 [2]
김형태
2011-05-23
7007
5893트랜잭션 오류ㅠㅠ [1]
mabin0110
2011-05-23
7581
5892기간조회 쿼리 ㅠㅠ [1]
흑꽁치
2011-05-23
7446
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다