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
운영게시판
최근게시물
DB2 Q&A 3190 게시물 읽기
No. 3190
SELECT 절 기초적인 질문 드립니다.
작성자
이한호(taisu99)
작성일
2012-05-21 09:50ⓒ
2012-05-21 09:51ⓜ
조회수
5,655

안녕하세요.

DATABASE.SARANG.NET 처음으로 글을 남겨보네요.

절사하고 바로 질문 들어가겠습니다.

 

테이블에 키가 일자에 일련번호 로 구성되었습니다.

일자는 VARCHAR(8) 일련번호는 VARCHAR(2) 이렇게 되어 있을 때

INPUT을 일자만 받을 때 일련번호가 가장 큰 값에 해당되는 정보만 가져오고 싶습니다.

제가 작성한 쿼리는

 

SELECT *

  FROM 테이블1

 WHERE 일자 = '일자'

   AND 일련번호 = (SELECT MAX(S.일련번호)

                   FROM 테이블1 AS S

                  WHERE S.일자 = 일자)

WITH UR

 

WHERE 절의 서브쿼리 안에서의 테이블에만 ALIAS 를 주고 FROM 절에는 ALIAS 를 주지 않았습니다.

그런데, 이렇게 하면 서브쿼리 WHERE 절의 오른쪽에 위치한 일자가 어떤 테이블에 해당하는지 모른다고 에러가 날 확률이 높다고 하는데..

그럼 이 쿼리를 어떻게 바꾸면 좋을까요?

 

혹은 다른 방식으로 SELECT 하는걸 추천해주실 분 계신가요?

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

안녕하세요.

해당 일자와 최대 일련번호 값에 대한 정보라면 아래와 같이 서브쿼리에서만 조건을 주셔도 됩니다.

제가 잘못 이해한 것이라면 말씀해주시길 바랍니다.

 

SELECT *

  FROM 테이블1

 WHERE 일련번호 = (SELECT MAX(S.일련번호)

                   FROM 테이블1 AS S

                  WHERE S.일자 = '일자')

WITH UR

정상규(pajama)님이 2012-05-21 12:08에 작성한 댓글입니다.

정상규님 댓글 감사합니다.

일련번호가 max 값에 해당하는 모든 정보가 조회되는게 아닌

특정 일자에 일련번호가 MAX(가장 최신의 데이타)를 가져오고 싶어서요..

이한호(taisu99)님이 2012-05-22 09:08에 작성한 댓글입니다.
이 댓글은 2012-05-22 09:11에 마지막으로 수정되었습니다.

 

select *

  from (

SELECT s.*

       , dense_rank() over(order by S.일련번호) rn

FROM 테이블1 AS S

WHERE S.일자 = '일자'

       ) t1

  where rn = 1

조는냥이님이 2012-08-03 09:36에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3194DB2에서는 달력 쿼리를 어떻게 만드나요? [1]
박창수
2012-08-13
6061
3192db2 초보..begin~end 문 사용하기...도와주세요
자유남자
2012-06-13
5184
3191for fetch only에 대해서 [1]
홍성훈
2012-06-08
5269
3190SELECT 절 기초적인 질문 드립니다. [3]
이한호
2012-05-21
5655
3189like와 substr을 함께 쓸때 오류 [3]
like
2012-05-09
6151
3188호스트 배열 변수의 각 Element 접근방법?
백옥동
2012-04-19
4610
3187AS/400 Reverse Engineering 대해서..
곽동엽
2012-04-18
4450
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다