2010-12-06 4 views
0

に参加し、ヌル: を(簡単に言えば、一桁が1からN項目にあり、外部キーは、テーブルの項目にORDER_IDれる)Access 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

関連する問題