ここから本文です

Oracle sql*plusについて select文で取得した値を変数に代入したく思っております...

a46********さん

2019/2/421:44:09

Oracle sql*plusについて
select文で取得した値を変数に代入したく思っております。

テーブルが2つ存在し、特定のデータが一致した際のレコード行数のみを取得したいです。下記の場合は変

数の代入が可能でしょうか。
試しましたが、うまく実行できません。
修正や、他に方法がある場合はご教授お願い致します。


テーブル名:sample1
カラム:ID,Name,Code

テーブル名:sample2
カラム:ID,Company


下記にSQLのソースを記載します。

set feedback off
set heading off
set underline off
set serveroutput on

var test number;

declare
test number(3);
begin
select count(*) from sample2 where ID = ( sample1.ID from sample1 and sample1.ID = sample1.Code) into :test: from sample2;
end;
/

上記のように、sample1とsample2の
IDのデータが一致かつ、sample1のIDとCodeが一致してる場合のsample2のレコード行数を取得し、変数testに代入したいと考えております。

修正及び、他に変数に代入ができる方法がありました、ご教授頂けると助かります。
よろしくお願い致します。

閲覧数:
28
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nora1962jpさん

2019/2/501:02:18

やりたいことはどんなことでしょう?

無名PL/SQLブロックを実行しても値を返す手段がないと思いますが。

> select count(*) from sample2 where ID = ( sample1.ID from sample1 and sample1.ID = sample1.Code) into :test: from sample2;

も意味がよくわかりません。構文エラーになります。

> sample1とsample2の
> IDのデータが一致
> かつ、sample1のIDとCodeが一致してる場合の
> sample2のレコード行数

重複している可能性を加味してintoをさておくと

select count(*) from sample2 where ID in ( select ID from sample1 where sample1.ID = sample1.Code);

が求めたい行数なのでしょうか?

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる