2010-12-06 6 views
0
나는 아래의 예처럼 보이는 다음과 같은 간단한 쿼리 실행

: (간단히 하나 순서 1에서 N 항목에하고 외래 키는 테이블 항목에 ORDER_ID됩니다) 액세스 2007 좌에 가입하고 널

SELECT orders.*, items.* 
FROM orders 
LEFT JOIN 
items ON orders.id= items.order_id 

이 같은 것을 보여줍니다

order.id item.id 
    1   34 
       22 
       90 
    2   44 
       19 
       21 
       22 

방법 :

order.id item.id 
    1   34 
    1   22 
    1   90 
    2   44 
    2   19 
    2   21 
    2   22 

내가 원하는을 같은 출력 Access 2007에서이를 달성하려면?

는, 사전에 감사 Miloud B. 내가 자기 것이이 일을 생각할 수있는 유일한 방법은 집계에 가입

+0

1) 왜 이것을하고 싶습니까? 2)'item.id'의 순서를 결정하는 논리는 무엇입니까? 그것은 자의적 일 수 있습니까? 즉 '34'가 아니라 '22'와 쌍을 이룰 수 있습니까? –

+0

항목의 ID는 전혀 중요하지 않습니다. 표시되는 번호입니다. 나는 더 읽기 쉬운 결과를 사용자에게 제공하기 위해 그렇게하고 싶다. Thx – CoolStraw

+3

원하는 것은 SQL 쿼리가 아닌 사용자 인터페이스에서 디스플레이를 변경하는 것입니다. 결과를 양식 또는 보고서에 표시하고 있습니까? 쿼리 자체에서는이를 수행 할 수 없습니다. – Bill

답변

1

. 응용 프로그램에서 더 쉽게 처리 할 수 ​​있습니다.

SELECT 
     IIF(i2.id = MIN(i.id), i.order_id, NULL) AS order_id, 
     i2.id AS item_id 
FROM  items i 
     INNER JOIN orders o 
     ON  o.id= i.order_id 
     LEFT JOIN items i2 
     ON  i2.order_id=i.order_id 
GROUP BY i.order_id 
ORDER BY i.order_id, 
     i2.id 
+2

태그는 ms-access를 나타내며 CASE는 작동하지 않습니다. – Fionnuala

+2

팁 주셔서 감사합니다! 브릴리언트 트릭;). @Remou : 케이스가 IIF가되어야하고 완벽하게 작동합니다! – CoolStraw

관련 문제