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 5018 게시물 읽기
No. 5018
최근에 발생된 결과 값에서 동일한 정보를 제외하고 하나씩만...
작성자
강진수(krnet21)
작성일
2009-06-15 16:28
조회수
5,432


select input, stat.app_id, stat.stair, stat.stay, stat.status from
          (select input, app_id, stair, stay, status from tb_stat_real_stay
          where convert(char(6), input, 12)
          = convert(char(6), getdate(), 12)) as stat order by stair, input, app_id asc;

위와 같은 쿼리를 날려
아래와 같은 결과를 얻었습니다.

문제는 'app_id' 당 레코드가 하나만 나와야 되며,
app_id 당 나와야 할 한 개의 레코드는 'input' 컬럼 값 중 가장 마지막에 
발생된 정보 즉, 가장 최근 정보 이면 됩니다.
아래의 표기에 '요거' 로 된 부분만 나왔으면 합니다.

위의 쿼리에 어떻게 해야 하는지 궁금 합니다.

input                        app_id     stair     stay      status
------------------------------------------------------------------
2009-06-15 11:29:01.907         6         1         1         0
2009-06-15 11:29:20.297         3         1         0         0
2009-06-15 11:30:04.900         2         1         0         0
2009-06-15 15:24:32.453         1         1         0         0
2009-06-15 15:24:43.860         5         1         0         0
2009-06-15 15:24:52.640         6         1         0         0
2009-06-15 15:27:10.470         3         1         0         0
2009-06-15 15:27:53.720         2         1         0         0
2009-06-15 15:28:35.530         4         1         0         0
2009-06-15 15:42:57.030         4         1         0         0
2009-06-15 15:42:59.767         1         1         0         0
2009-06-15 15:43:10.800         5         1         0         0
2009-06-15 15:43:20.123         6         1         0         0
2009-06-15 15:43:34.920         3         1         0         0
2009-06-15 15:44:17.657         2         1         0         0
2009-06-15 16:04:05.280         3         1         0         0         ---> 요거
2009-06-15 16:04:47.733         2         1         0         0         ---> 요거
2009-06-15 16:05:30.703         4         1         0         0         ---> 요거
2009-06-15 16:05:33.170         1         1         0         0         ---> 요거
2009-06-15 16:05:43.797         5         1         0         0         ---> 요거
2009-06-15 16:05:54.390         6         1         0         0         ---> 요거
2009-06-15 11:29:37.630         9         2         0         0
2009-06-15 15:23:20.407         9         2         0         0
2009-06-15 15:24:40.280         10        2         0         0
2009-06-15 15:28:21.983         7         2         0         0
2009-06-15 15:28:33.470         8         2         0         0
2009-06-15 15:42:45.500         7         2         0         0
2009-06-15 15:42:54.657         8         2         0         0
2009-06-15 15:43:07.360         10        2         0         0
2009-06-15 15:43:50.687         9         2         0         0
2009-06-15 16:04:20.157         9         2         0         0         ---> 요거
2009-06-15 16:05:15.707         7         2         0         0         ---> 요거
2009-06-15 16:05:28.063         8         2         0         0         ---> 요거
2009-06-15 16:05:40.453         10        2         0         0         ---> 요거

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

음 일단은 select 쿼리부터

select input, app_id, stair, stay 
from tb_stat_real_stay
where convert(char(6), input, 12) = convert(char(6), getdate(), 12)
order by stair, input, app_id asc;

이처럼 고치는게 좋을거 같구여



최근꺼만 뽑아오는 쿼리는 

select t1.input, t1.app_id, t1.stair, t1.stayinput, t1.app_id, t1.stair, t1.stay 
from tb_stat_real_stay t1
join (select app_id, max(input) as co2 from tb_stat_real_stay group by app_id) t2
on t1.app_id=t2.app_id and t1.input = t2.co2
where convert(char(6), input, 12) = convert(char(6), getdate(), 12)

수정하면 될듯하구여


다른방법으로는 자동증가 컬럼이 존재하는경우가 있으면 다르게도 가능합니다.

임진표(운가라)님이 2009-06-15 17:03에 작성한 댓글입니다.
이 댓글은 2009-06-15 17:07에 마지막으로 수정되었습니다.

테스트 하기 전인데
답변에 감사 드립니다.

강진수(krnet21)님이 2009-06-16 10:37에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5021DB 속도 관련 문제. [1]
촏보
2009-06-16
5778
5020이미지 파일을 테이블에 저장하는 방법 [1]
손진희
2009-06-16
6078
5019count로 갯수 구하는 쿼리문 좀 알려주세요...ㅜ_ㅜ [1]
박수영
2009-06-15
5664
5018최근에 발생된 결과 값에서 동일한 정보를 제외하고 하나씩만... [2]
강진수
2009-06-15
5432
5011Replication 2000 <--> 2005
임대원
2009-06-15
5652
4986access에서 업데이트 하는데 질문이요!!
chicken
2009-06-12
5428
4985서버 TCP 공급자가 오류로 인해 포트 [1433]에서 수신을 중지했습니다
김형열
2009-06-12
7500
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다