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

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

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

Re[1]: オラクル SQL


(過去ログ 73 を表示中)

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

■42930 / inTopicNo.1)  オラクル SQL
  
□投稿者/ 初心者 (65回)-(2009/10/23(Fri) 16:14:34)

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

やりたいこと、TB_Aテーブルの項目1 がNULLの場合は TB_Aの 項目数量 をとります。
TB_Aテーブルの項目1 がNULLではないの場合は すべて検索された行の 項目1 が同じの 項目数量 を SUMし総数量として取得したいです。
書き方をちょうっと、教えてください、ずっとエラーになります。
よろしく、お願いいたします。
---------------------------
SELECT TB_A.*,
(
CASE WHEN TB_A.項目1 IS NULL THEN TB_A.項目数量

ELSE (
SELECT SUM(TB_A.項目数量)
FROM TB_A  TB_A_2
WHERE TB_A.項目1 = TB_A_2.項目1

)
END
) RESULT --総数量

FROM TB_A
引用返信 編集キー/
■42933 / inTopicNo.2)  Re[1]: オラクル SQL
□投稿者/ とも (7回)-(2009/10/23(Fri) 16:33:33)
No42930 (初心者 さん) に返信
> やりたいこと、TB_Aテーブルの項目1 がNULLの場合は TB_Aの 項目数量 をとります。
> TB_Aテーブルの項目1 がNULLではないの場合は すべて検索された行の 項目1 が同じの 項目数量 を SUMし総数量として取得したいです。
> 書き方をちょうっと、教えてください、ずっとエラーになります。
> よろしく、お願いいたします。
> ---------------------------
> SELECT TB_A.*,
> (
> CASE WHEN TB_A.項目1 IS NULL THEN TB_A.項目数量
>
> ELSE (
> SELECT SUM(TB_A.項目数量)
> FROM TB_A  TB_A_2
> WHERE TB_A.項目1 = TB_A_2.項目1
>
> )
> END
> ) RESULT --総数量
>
> FROM TB_A

全てに対して聞きすぎじゃないでしょうかね・・
もうちょっと自分で考えることを考えないと成長しないよ。
引用返信 編集キー/
■42935 / inTopicNo.3)  Re[1]: オラクル SQL
□投稿者/ いしだ (214回)-(2009/10/23(Fri) 17:41:39)
2009/10/23(Fri) 17:57:06 編集(投稿者)
こんな感じでしょうか。

select a1.*,
       case when 項目1 is null then 項目数量
       else (select sum(項目数量) from TB_A a2
             where a2.項目1=a1.項目1)
       end as RESULT
from TB_A a1;

引用返信 編集キー/
■42938 / inTopicNo.4)  Re[2]: オラクル SQL
□投稿者/ 初心者 (66回)-(2009/10/23(Fri) 18:33:05)
No42935 (いしだ さん) に返信
> 2009/10/23(Fri) 17:57:06 編集(投稿者)
>
> こんな感じでしょうか。
>
> select a1.*,
> case when 項目1 is null then 項目数量
> else (select sum(項目数量) from TB_A a2
> where a2.項目1=a1.項目1)
> end as RESULT
> from TB_A a1;
>

すみません、実行してみると、ORA-00918:列のあいまいな原因 というのはどういう意味ですか?
オラクル、初めなんで、よくわかりません。教えてください
引用返信 編集キー/
■42945 / inTopicNo.5)  Re[3]: オラクル SQL
□投稿者/ いしだ (216回)-(2009/10/24(Sat) 04:26:09)
ああ、すいません。
Oracle環境がないのでためせないんですが、以下でどうでしょうか?

select a1.*,
       case when a1.項目1 is null then a1.項目数量
       else (select sum(a2.項目数量) from TB_A a2
             where a2.項目1=a1.項目1)
       end as RESULT
from TB_A a1;

列があいまいって事は、a1,a2どちらの方の列かわからない、って事じゃないですかね?

引用返信 編集キー/
■42947 / inTopicNo.6)  Re[1]: オラクル SQL
□投稿者/ やじゅ (1395回)-(2009/10/24(Sat) 08:10:30)
やじゅ さんの Web サイト
No42930 (初心者 さん) に返信

「オラクル SQL」、「ORACEL SQL」
今後のタイトルは質問の概要を書いてくださいね。

技術掲示板は情報共有という目的も一部あり、他の人が同じ原因で悩んだ時に参考になりますから。
http://www.hyuki.com/writing/techask.html
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -