2014-04-11 1 views
0

tbl_A이 쿼리 ​​조건과 일치하는 행 앞뒤에 N 행을 선택 하시겠습니까? - MS 액세스

SELECT X.B, 
     Y.A 
FROM tbl_B AS X, 
     tbl_A AS Y 
WHERE X.uqAID = Y.uqBID 
     AND X.A = 'UU' 
     AND Y.B = 'QQQ' 

내가 " UU QQQ"

같은 결과를 얻고으로

uqAID A 
1  CC 
2  AA 
3  SS 
4  QQ 
5  RR 
6  UU 
7  LL 
8  WW 

tbl_B

uqBID uqAID B 
1  4  NNN 
2  4  MMM 
3  3  OOO 
4  1  PPP 
5  6  QQQ 
6  4  RRR 
7  8  SSS 
8  2  TTT 

하지만이 같은 결과를 얻을 필요

SS  OOO 
CC  PPP 
UU  QQQ 
QQ  RRR 
WW  SSS 

위 아래 MS 액세스

+0

그래서 ... 왜 모델 자체에서 그 관계를 관리하지 않습니까? –

답변

0

먼저 두 UU의 기록과 QQQ의, 순서에 의존하는 것입니다. 따라서 질의에 의한 주문이 필요할 경우 결과를 예측할 수있는 방법이 없습니다.

는, 당신은 QQQ를 얻기 위해 같은 것을 할 수있는 YB 열에 srder의 가정하고 두 사람은 그것을 다음

SELECT Top 3 X.B, 
     Y.A 
FROM tbl_B AS X, 
     tbl_A AS Y 
WHERE X.uqAID = Y.uqBID 
     AND X.A >= 'UU' 
     AND Y.B >= 'QQQ' 
order by y.a, y.b 

을 그런 다음 두 개의 이전에 QQQ에 도착하는 다음

SELECT Top 2 X.B, 
     Y.A 
FROM tbl_B AS X, 
     tbl_A AS Y 
WHERE X.uqAID = Y.uqBID 
     AND X.A < 'UU' 
     AND Y.B < 'QQQ' 
order by y.a desc, y.b desc 

거기에서 두 결과 세트를 결합 할 수 있습니다 (이는 학생을위한 연습 과제입니다). 두 단계를 거쳐 트리거 행을 따라 가야합니다.