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 6446 게시물 읽기
No. 6446
오프셋 항목 구하기?
작성자
우세연(w2share)
작성일
2012-11-20 18:37
조회수
7,932

 

일련번호 날짜 테이블 이름 가격
123 2012/11/18 1   27000
124 2012/11/18   떡볶이 2000
125 2012/11/18   갈비탕 5000
126 2012/11/18   김밥 3000
127 2012/11/18   불고기 7000
128 2012/11/18 2   11000
129 2012/11/18   떡볶이 2000
130 2012/11/18   갈비탕 5000
131 2012/11/18   해물탕 4000

만약 어느 식당에 이렇게 납작한 데이터 베이스가 이미 만들어져 있다면요.

테이블 컬럼에 번호가 들어가 있는 Row 들은 그 테이블의 주문 총 가격이고요. 그 바로 아래에 있는 테이블 컬럼에 아무것도 없는 Row 들은 그 주문내의 각각의 음식이라는데요.

예를 들어 만약 2012년 11월 18일자 테이블 1의 주문 내역만을 보고 싶다면 일련번호 124, 125, 126, 127 의 행들이 나와야 하고요

테이블 2의 주문 내역만 보고 싶다면 일련번호 129, 130, 131 의 행들이 나와야 하는데요.

쿼리 도움 좀 부탁드려요.

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

 WITH tbl ( 일련번호, 날짜, 테이블, 이름, 가격)

AS
SELECT 123, '2012/11/18', 1, NULL, 27000     UNION ALL
SELECT 124, '2012/11/18', NULL, N'떡볶이', 2000  UNION ALL
SELECT 125, '2012/11/18', NULL, N'갈비탕', 5000  UNION ALL
SELECT 126, '2012/11/18', NULL, N'김밥' ,  3000   UNION ALL
SELECT 127, '2012/11/18', NULL, N'불고기', 7000  UNION ALL
SELECT 128, '2012/11/18', 2, NULL, 11000         UNION ALL
SELECT 129, '2012/11/18', NULL, N'떡볶이', 2000  UNION ALL
SELECT 130, '2012/11/18', NULL, N'갈비탕', 5000  UNION ALL
SELECT 131, '2012/11/18', NULL, N'해물탕', 4000  UNION ALL
SELECT 132, '2012/11/18', 1, NULL, 15000     UNION ALL
SELECT 133, '2012/11/18', NULL, N'김밥' ,  3000   UNION ALL
SELECT 134, '2012/11/18', NULL, N'불고기', 7000  UNION ALL
SELECT 135, '2012/11/18', NULL, N'갈비탕', 5000
)
 
SELECT tbl.*
FROM tbl
INNER JOIN
(
SELECT 일련번호 AS rangeBgn, ISNULL( ( SELECT MIN( 일련번호 ) FROM tbl AS sq WHERE tbl.일련번호 < sq.일련번호 AND 테이블 IS NOT NULL ) ,
--( SELECT MAX( 일련번호 ) + 1 FROM tbl )
2147483647 -- INT로 가정했을때임..  21억을 넘기는 일련번호가 발생하는 것이 문제될거 같으면 김밥집에 한 부서로 전산실 운영하셔도 될 듯...
) AS rangeEnd
FROM tbl
WHERE 날짜 = '2012/11/18' AND 테이블 = 1
) AS tt ON tt.rangeBgn < tbl.일련번호 AND tbl.일련번호 < tt.rangeEnd
;
우욱님이 2012-11-22 05:54에 작성한 댓글입니다. Edit

정말 정말 감사합니다.

우세연(w2share)님이 2012-11-23 02:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6463원화를 $로 표기 [1]
왕초보
2012-11-23
7906
64627일 간 빠짐없이 방문한 사람 기록 찾기 [1]
정철민
2012-11-23
8280
6461쿼리 좀 도와주세요 [2]
전기영
2012-11-22
7890
6446오프셋 항목 구하기? [2]
우세연
2012-11-20
7932
6443연관성이 없는 테이블 2개를 합쳐서 결과를 보여주고 싶습니다. [4]
초보
2012-11-12
8328
6441MS-SQL 쿼리 질문입니다. [1]
초보자
2012-11-09
7595
6440쿼리 질문드립니다.. [5]
초보입니다.
2012-11-09
8807
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다