
はじめまして。
各部門に所属している人の件数を配列に格納して処理したいと考えています。
(例)テーブル名:buhyo
SQL:select bumon_cd,count(*) from buhyo group by bumon_cd order by bumon_cd
上記SQLの結果↓
部門コード(bumon_cd) count(*)
---------------------------------
A11 100
A12 150
A13 200
上の結果であるA11と100、A12と150、A13と200をそれぞれ配列に入れたくて
PLSQLで以下のロジックを作成しましたが、うまくいかなくて困っています。
<ロジック>
DECLARE
CURSOR KEKKA IS SELECT BUMON_CD,BUMON_CD,COUNT(*) RCNT FROM BUHYO
GROUP BY BUMON_CD ORDER BY BUMON_CD;
TYPE BUMON_TAB IS TABLE OF KEKKA%ROWTYPE INDEX BY PLS_INTEGER;
WK_ARRAY BUMON_TAB;
BEGIN
FOR WK_BUMON IN KEKKA LOOP
I := I + 1;
WK_ARRAY(I).BUMON_CD = WK_BUMON.BUMON_CD;
WK_ARRAY(I).RCNT = WK_BUMON.RCNT;
DBMS_OUTPUT.PUT_LINE(WK_ARRAY(I).BUMON_CD || ',' || WK_ARRAY(I).RCNT);
END LOOP;
END;
/
これで出力しようとしてもWK_ARRAY配列に部門コードと件数が入りません。
どのようにすれば各部門とその対になる件数を配列に入れることが
可能でしょうか?ご教授ください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
変数Iが宣言されていないですし、代入文もおかしいです。
元のプログラムを極力変えずにいくと、
DECLARE
CURSOR KEKKA IS SELECT BUMON_CD,COUNT(*) RCNT FROM BUHYO
GROUP BY BUMON_CD ORDER BY BUMON_CD;
TYPE BUMON_TAB IS TABLE OF KEKKA%ROWTYPE INDEX BY PLS_INTEGER;
WK_ARRAY BUMON_TAB;
I PLS_INTEGER := 0; --追加
BEGIN
FOR WK_BUMON IN KEKKA LOOP
I := I + 1;
WK_ARRAY(I).BUMON_CD := WK_BUMON.BUMON_CD; -- = を := に修正
WK_ARRAY(I).RCNT := WK_BUMON.RCNT;-- = を := に修正
DBMS_OUTPUT.PUT_LINE(WK_ARRAY(I).BUMON_CD || ',' || WK_ARRAY(I).RCNT);
END LOOP;
END;
/
こんな感じでしょうか。
この場合、添え字は1から始まることになります。
yamada_gさん
お世話になります。
変数Iの宣言が必要なのですね。それから=ではなく:=ですね。
すいません。ご指摘ありがとうございます。
教えていただいた内容で配列に正しく格納できました。
本当にありがとうございます。
いろいろと勉強になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- 工学 制御工学に関する質問です。 離散時間システムの状態方程式は x(k+1)=Ax(k)+Bu(k) と 1 2023/01/16 12:18
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- PHP PHP MySql ページング 2 2022/09/20 06:38
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Oracle SQLの書き方について 1 2023/04/13 09:54
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- テクノ・ハウス 質問の音楽ジャンルに詳しい方、よろしくお願いします。 2 2023/08/16 21:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
重複するキーから一番古い年月...
-
主キーの変更
-
自分自身への矢印
-
具体的なSQLの質問。私にとって...
-
update文で質問です。 下記の条...
-
アクセス・クエリでのテキスト累計
-
行方向のデータを横に並べる
-
Accessユニオンクエリーで2つ...
-
ACCESS 一つのフィールドに複...
-
Accessでフィールドを比較した...
-
テーブル値関数経由でのデータ更新
-
SQL文をどう記述すれば良い...
-
2つのテーブルから条件に一致...
-
【Access初心者】最大値と次に...
-
売上実績のある商品の状態を売...
-
ACCESS インポート時の重複チ...
-
PLSQLで集計関数の値を配列に入...
-
ACCESS2007 フォーム 「バリア...
-
SELECT文でのデッドロックに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
主キーの変更
-
accessで移動平均する方法
-
ACCESS 一つのフィールドに複...
-
行方向のデータを横に並べる
-
update文で質問です。 下記の条...
-
PLSQLの識別子エラー
-
Accessでフィールドを比較した...
-
VIEWでテーブルの集計結果...
-
ACCESSのコンパイルエラーについて
-
下記のsqlで取得されるレコード...
-
SQL文のCOUNTについて
-
続.ORACLEのSELECTのソートに...
-
履歴を管理するテーブル構造に...
-
PLSQLで集計関数の値を配列に入...
-
アクセス2000のフォームに...
-
ACCESS2000です。
-
複数テーブルの不一致クエリに...
おすすめ情報