0

以下の例のような値を返す Oracle クエリ。ただし、どの連絡先名を admin,jack,robert として注文したいのですが、以下の順序はアルファベット順ではなく、同時に prodid は以下の例のように同じグループである必要があります。

オラクルのクエリ:

SELECT part_id, prodname, shippingaddress, contact 
FROM part p, address a WHERE p.part_id = a.part_id (+) 
AND p.quarter = a.quarter (+) AND 
p.quarter = '2014' AND order by p.prod_id

上記のクエリ出力:

prodid     prodname    shippingaddress    contact
-------------------------------------------------
01         computer    xxxxxx             Jack
01         computer    xxxxxx             admin
01         computer    xxxxxx             robert
03         keybord     xxxxxx             admin
03         keybord     xxxxx              jack
06         cpu         xxxx               robert
06         cpu         xxxx               admin 
06         cpu         xxx                jack 

期待される出力:

prodid     prodname    shippingaddress    contact
-------------------------------------------------
01         computer    xxxxxx             admin
01         computer    xxxxxx             jack
01         computer    xxxxxx             robert
03         keybord     xxxxxx             admin
03         keybord     xxxxx              jack
06         cpu         xxxx               admin
06         cpu         xxxx               jack
06         cpu         xxx                robert

これは SQL で可能ですか?

4

2 に答える 2

2

試す

SELECT part_id, prodname, shippingaddress, contact 
FROM part p, address a WHERE p.part_id = a.part_id (+) 
AND p.quarter = a.quarter (+) AND 
p.quarter = '2014' order by p.prod_id, contact

注意: あなたのクエリは古い結合構文を使用しています... それを避け、新しい結合構文を使用してください (構文の代わりに内部結合、外部結合などを探してください(+))。

于 2013-06-12T20:43:06.353 に答える