- PR -

データの取得方法について

1
投稿者投稿内容
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2005-01-12 10:27
以下のデータを取得するSQLをご教授願います。
※Oracle9

■テーブル T1
---------------------------------------------------
SeqNo | Code | Value1 | Value2 | ・・・・・
---------------------------------------------------
1 | 1 | aaa | o | ・・・・・
2 | 1 | aaa | p | ・・・・・
3 | 2 | bbb | q | ・・・・・
4 | 2 | ggg | r | ・・・・・
5 | 3 | ccc | s | ・・・・・
6 | 3 | ccc | t | ・・・・・
---------------------------------------------------
※SeqNo、Code、Value1、Value2はキー

取得したい結果
---------------------------------------------------
Code | Value1 |
---------------------------------------------------
1 | aaa |
2 | bbb |
3 | ccc |
---------------------------------------------------
あるいは
---------------------------------------------------
Code | Value1 |
---------------------------------------------------
1 | aaa |
2 | ggg |
3 | ccc |
---------------------------------------------------
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-01-12 10:35
何を求めているのかはわからないのですが、
コード:
SELECT
  Code, MIN(Value1) Value1
FROM
  T1
GROUP BY
  Code


これでは?
Dra
大ベテラン
会議室デビュー日: 2004/10/04
投稿数: 111
投稿日時: 2005-01-12 10:54
にしざきありがとうございます。
MIN(),MAX()の使用ははレスポンス的にどうか分かりませんが
他に上記関数を使用しない方法はあるのでしょうか?
申し訳ありませんがお願い致します。
pr0
会議室デビュー日: 2004/12/25
投稿数: 17
投稿日時: 2005-01-13 11:20
私もにしざきさんの回答が解りやすいと思うのですが、
■テーブル T1
---------------------------------------------------
SeqNo | Code | Value1 | Value2 | ・・・・・
---------------------------------------------------
1 | 1 | aaa | o | ・・・・・
2 | 1 | aaa | p | ・・・・・
3 | 2 | bbb | q | ・・・・・
4 | 2 | ggg | r | ・・・・・
5 | 3 | ccc | s | ・・・・・
6 | 3 | ccc | t | ・・・・・
あくまで上記のようにCodeに対してValue1が"2つずつある(3つ以上ない)"
のが前提であれば、

select Code, DISTINCT Value1 from T1 group by Code order by Value1;
(select Code, DISTINCT Value1 from T1 group by Code order by Value1 DESC;)

ではどうでしょう?

//編集
あ、Codeに対してValue1が"2つずつある(3つ以上ない)"のであれば
group byはなくてもいいですね。
select DISTINCT Code, Value1 from T1;
(select DISTINCT Code, Value1 from T1 order by Value1 DESC;)

[ メッセージ編集済み 編集者: pr0 編集日時 2005-01-13 11:33 ]
1

スキルアップ/キャリアアップ(JOB@IT)