C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: ORACEL SQL


(過去ログ 73 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■42906 / inTopicNo.1)  ORACEL SQL
  
□投稿者/ 初心者 (62回)-(2009/10/23(Fri) 10:57:42)

分類:[データベース全般] 

TB_Aにはテーブルのプライマリキー 3つあります。NUMBER、TYPE 、DISPLAY_NUMBER(型は全部VARCHAR2)
TB_Bにはテーブルのプライマリキー 二つあります。NUMBER、TYPE
で下たのSQLから検索すると複数のレコードが取れますが、ORDER BYを利用して、昇順で(型は全部VARCHAR2ですので)
ソートした後、複数の最小値 A,B,Cを取りたいですが、SQLをどう書けばよいですか、教えれください、よろしく、お願いいたします。

SELECT A,
B,
C
FROM TB_A,TB_B
WHERE TB_A.NUMBER = TB_B.NUMBER(テーブルのプライマリキー)
AND
TB_A.TYPE = TB_B.TYPE
ORDER BY A,B,C
引用返信 編集キー/
■42910 / inTopicNo.2)  Re[1]: ORACEL SQL
□投稿者/ いしだ (212回)-(2009/10/23(Fri) 11:43:38)
2009/10/23(Fri) 11:57:26 編集(投稿者)
先頭1行目を取得したいと言う事ですか?
こんな感じですかね。(未検証)

select A,B,C
from (select A,B,C,row_number() over (order by A,B,C) as line
      from TB_A,TB_B
      where TB_A.NUMBER=TB_B.NUMBER and TB_A.TYPE=TB_B.TYPE)
where line=1

又は、

select A,B,C
from (select A,B,C
      from TB_A,TB_B
      where TB_A.NUMBER=TB_B.NUMBER and TB_A.TYPE=TB_B.TYPE
      order by A,B,C)
where rownum=1


ちなみに、SQL Serverならtopがあるんですけどね。。。

引用返信 編集キー/
■42914 / inTopicNo.3)  Re[2]: ORACEL SQL
□投稿者/ とも (6回)-(2009/10/23(Fri) 13:10:13)
最小を取りたいのなら一行しかないはずなのに、なぜ昇順にする必要があるのかがわからない。
そもそも複数の最小値ってどういう意味なんでしょうか
引用返信 編集キー/
■42918 / inTopicNo.4)  Re[2]: ORACEL SQL
□投稿者/ 初心者 (63回)-(2009/10/23(Fri) 14:06:05)
No42910 (いしだ さん) に返信
> 2009/10/23(Fri) 11:57:26 編集(投稿者)
>
> 先頭1行目を取得したいと言う事ですか?
> こんな感じですかね。(未検証)
>
> select A,B,C
> from (select A,B,C,row_number() over (order by A,B,C) as line
> from TB_A,TB_B
> where TB_A.NUMBER=TB_B.NUMBER and TB_A.TYPE=TB_B.TYPE)
> where line=1
>
> 又は、
>
> select A,B,C
> from (select A,B,C
> from TB_A,TB_B
> where TB_A.NUMBER=TB_B.NUMBER and TB_A.TYPE=TB_B.TYPE
> order by A,B,C)
> where rownum=1
>
>
> ちなみに、SQL Serverならtopがあるんですけどね。。。



毎回、ほんとに、ありがとう、ございました。

今回も、順調に解決しました、いろいろと、おせわになっております。

いい、掲示板ですね。
今後とも、よろしく、お願いいたします。
引用返信 編集キー/
■42919 / inTopicNo.5)  Re[3]: ORACEL SQL
□投稿者/ 初心者 (64回)-(2009/10/23(Fri) 14:06:28)
No42918 (初心者 さん) に返信
> ■No42910 (いしだ さん) に返信
>>2009/10/23(Fri) 11:57:26 編集(投稿者)
>>
>>先頭1行目を取得したいと言う事ですか?
>>こんな感じですかね。(未検証)
>>
>>select A,B,C
>>from (select A,B,C,row_number() over (order by A,B,C) as line
>> from TB_A,TB_B
>> where TB_A.NUMBER=TB_B.NUMBER and TB_A.TYPE=TB_B.TYPE)
>>where line=1
>>
>>又は、
>>
>>select A,B,C
>>from (select A,B,C
>> from TB_A,TB_B
>> where TB_A.NUMBER=TB_B.NUMBER and TB_A.TYPE=TB_B.TYPE
>> order by A,B,C)
>>where rownum=1
>>
>>
>>ちなみに、SQL Serverならtopがあるんですけどね。。。
>
>
>
> 毎回、ほんとに、ありがとう、ございました。
>
> 今回も、順調に解決しました、いろいろと、おせわになっております。
>
> いい、掲示板ですね。
> 今後とも、よろしく、お願いいたします。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -