• 締切済み

PLSQL

entreeの回答

  • entree
  • ベストアンサー率55% (405/735)
回答No.1

セット商品コード(X) から始めて、見つかったセット商品コード (X を含む) を 結合配列に入れていく。入れる前に結合配列をチェックし、既にセット商品コー ドが入っていたら問題あり。 ▼結合配列 http://www.shift-the-oracle.com/plsql/collection/

関連するQ&A

  • Access VBA 処理 落ち 不具合

    AccessVBAの処理落ちで困っています。 開発環境は Office 2003 Access OSはWindowsServer2003 Standard Edition(VM Ware上で稼働)、データベースは別に用意したAccess2003MDBファイルです。 処理概要は データベース上の業務データが登録されているテーブル(以後テーブル1と呼ぶ)のデータ(主キー)を元にデータベース上の商品単価が登録されているマスタテーブル(以後マスタ1と呼ぶ)のデータを抽出し、テーブル1に金額をセットするものです。 業務データは月毎に約4000件存在します。 金額のセット処理はレコードセットを用い、テーブル1の該当する月のデータ件数分繰り返し行います。 テーブル1の金額フィールドにテーブル1のデータを主キーとして用い、マスタ1の該当する金額を抽出し、セットしなければならないのですが、金額が正しく登録されている物と全く違う金額が登録されている状態が発生しています。 テストデータは 例:2009年4月分のデータのみ(テーブル1、マスタ1共に) という状態でテストしています。 作成したソースコードをチェックしてみましたがロジック上は 何処にも異常は見当たりません。 ループの中でソースコードの命令外の処理が行われているようにしか思えません。 説明が分かり辛ければ申し訳ありません、ご指摘頂ければ補足します。 どなたかこの現象についてご存じの方はご教授願えませんでしょうか? どうか宜しくお願い致します。

  • レコードの更新・置換 (PLSQL)

    こんにちは。 SQLの作成で悩んでいます。 テーブル名:SAMPLE PRIMARY KEY:ID、KBN1、KBN2、CODE ID  KBN1  KBN2  CODE    POINT ---  ----  ----   -----    ------ 1   1    1     '001'    100 1   1    1     '002'    200 1   2    1     '001'    300 1   1    2     '001'    0 2   1    1     '003'    100 ・・・ というテーブルがあります。 以下の処理を行いたいのですが・・・ (1) KBN2=2のレコードのPOINTを更新(または置換)   KBN2=2は1つのIDにつき1つだけです。 (2) 更新内容は次の通りです。   ID、KBN1、CODEが(1)のレコード(KBN2=2のレコード)と同じレコードのPOINTを、(1)のレコードのPOINTに挿入。   SAMPLEテーブルのID=1ならば、4レコード目が (1,1,2,'001',100) になって欲しいのです。 UPDATE文を作成してみたのですが、Setする時のサブクエリ等の誤りで実現しません。 (全部同じポイントになってみたり・・・) 初心者の為、分かり辛い説明で大変申し訳ありませんが、ご助言頂けないでしょうか。 よろしくお願い致します。

  • 横並びのデータについて

    セットマスタ 親商品コード1,子商品コード1,子商品コード2,子商品3…子商品10 があるとします。 【マスタ情報】 ・親商品コードは、nullでない ・子商品コードは、1番目はnullでは無いが2番目以降の有無は親商品による また、価格マスタが存在して、 キーは、商品コードで価格を持っています。 【マスタ情報】 ・商品コードは、nullでない ・商品コードで、一意に決まる 上記の状況で、親商品コード価格 と 子商品コード価格の合計 をチェックしたいのですが、うまい方法がわかりません。 現状では、 VBでレコードセットで各商品コード毎に価格マスタを当てに 行き、親 ⇔ 子の合計をチェックする方法しか思いつきません。 どなたか、うまいSQLがあれば よろしくお願いします。

  • 猪木・川合の量子力学 直交多項式について

    P278,P279のO^Fn(x)がxのn次式であると書いてありますが、どうしてかわかりません。 xのn次以下の多項式であるところまではわかるのですが・・・ それと、Fn(x)とO^Fn(x)が比例するところもわかりません・・・

  • SQL文で質問

    SQL文で質問 いつもお世話になっております。 SQL文について質問です。 仮にですが、商品マスタというテーブルと、対応テーブルという二つのテーブルがあります。 対応テーブルには、商品コードが親コード、子コードといった形で構成されています。 対応テーブルのいくつかの親のコードを条件に、親コードと子コードを検索して、それぞれの商品名を検索したいと思っています。 現在、SQL文で、親コードに対応した商品名だけを取得しているのですが、子コードに対応する商品名も検索したいと思っています。 現在のSQL分としては、 SELECT 対応テーブル.親コード、商品マスタ.商品名、対応テーブル.子コード FROM 対応テーブル,商品マスタ WHERE 対応テーブル.親コード = 商品マスタ.商品コード AND 対応テーブル.親コード = 1000,1002,1004 このSQL文で検索した子コードで、商品マスタの商品名を検索したいのですが、どのようなSQLを書いたらよいのでしょうか。 ご教授願います。

  • Accessの操作について質問です。

    Access2002をつかっています。 登録コード,商品コード,数量(1),原価・・・と並んだテーブル1と 商品ジャンルコード,商品コード,商品名,原価,数量・・と並んだテーブル2があります。 テーブル2からテーブル1にある商品コードと同じものを抜き出したいと思います。 商品ジャンルコード(テーブル2),商品コード(テーブル1にありテーブル2にもある商品コード),商品名(テーブル2),原価(テーブル2),数量(テーブル1と同数),・・ というデータを新たに作りたいです。 データ1の特徴 ・登録コードが違い、他の列は全て同じの行がある。 ・数量は全て1 データ2の特徴 ・数量は1以外が多い ・原価、数量が違い、他の列は全て同じ行がある。 例えば、テーブル1にある商品コードAという商品はテーブル1では数量1で計10行あり、 テーブル2には数量6と数量4と数量3で3行になっているという形です。 テーブル2からテーブル1の数量10を抜き取ったデータを作りたいです。10はテーブル2の計13のどの行からとってもいいです。 わかりづらくて申し訳ございませんが、わかる方いらっしゃいましたらお願いします。

  • 正規化されていないテーブルの分割について

    正規化されてない下記のようなテーブルがあります。 テープル1(主キー:得意先、商品コード) 得意先   商品コード A      1 A      2 B      5 B      6 B      7 C      1 C      2 これを以下のようにテーブル2つに分けたいです。 テーブル2(主キー:得意先) 得意先 パターン A     x B     y C     x テーブル3(主キー:パターン、商品コード) パターン 商品コード x      1 x      2 y      5 y      6 y      7 このとき、テーブル1のデーターをもとに テーブル2やテーブル3のレコードを生成したいのですが、 テーブル3を抽出するSQL文がどうしても思いつきません。 (やりたいのは、あらかじめ登録したパターンを得意先ごとに選択するという形にしたいです。) 簡単にできるような気もするのですが... パターンについては、ランダムな文字列で構わないです。 SQL文等アドバイスの程、よろしくお願い致します。

  • アクセスのクエリで

    テーブルAには、商品コードと数量と金額。 テーブルBには、商品コードと空のフィールド。 テーブルBにAのテーブルを参照して、該当する商品コードの金額を空のフィールドにコピーしたいのですが、どうしたらいいでしょうか。 SQL文で書いて頂いても結構です。 よろしくお願い致します。

  • SQLを教えてください。

    以下に5つのテーブルがあるとします。 (1)全体テーブル  ・登録順番号(Key)  ・登録名 (2)商品テーブル  ・項目コード(Key)  ・品名コード(Key)  ・商品登録順番号(Key)  ・商品サイズ(Key)  ・品名 (3)商品単価テーブル  ・項目コード(Key)  ・品名コード(Key)  ・商品登録順番号(Key)  ・商品サイズ(Key)  ・登録順番号(Key)  ・商品単価 (4)新_商品単価テーブル  ・項目コード(Key)  ・品名コード(Key(Key))  ・商品登録順番号  ・商品サイズ(Key)  ・登録順番号(Key)  ・新_商品単価 (5)詳細テーブル  ・登録順番号(Key)  ・品名コード(Key)  ・原価項目コード(Key)  ・商品数量A  ・商品数量B 上記のテーブルから、以下の条件に合致する「(1)の登録名」「(2)の品名」「(4)の新_商品単価×(5)の商品数量※」を取得したい。 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 【条件1】全てAND条件 新_商品単価テーブルの項目コードが100  新_商品単価テーブルの品名コードが50 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※<0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 上記で抽出出来るレコードに加えて、以下 【条件2】全てAND条件 新_商品単価テーブルの項目コードが200~300あるいは400~500 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※=0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A どのようなSQLで抽出できますでしょうか?? DBはAccessです。

  • ExcelのVLOOKUP関数でわからないことが・・・

    N   ┃O       ┃P     ・・・   X   ┃    Y┃ Z 車番 ┃乗務員コード┃運転手 ・・・乗務員CD┃運転手┃車番 上記のような構成の表を作ってあります。 O列に数字を入力した時点で、N列・P列の両方がいっぺんに出るような関数を入れたいと言うのが目標です。隣のX列~Z列はその参照する表です。P列に =IF(O3="","",IF(O3=VLOOKUP(O3,$X$1:$X$202,1),VLOOKUP(O3,$X$1:$Y$203,2),#REF!)) と言う関数により片方はできました。Oに数字を入力した時点でP列には運転手の名前がちゃんと出ます。問題は隣の車番でして、同じようにO列の乗務員CDを参照させてVLOOKUP関数を設定したのですが、値を返してくれないどころか、Enterを押すと数式がそのままセルに表示された状態になってしまいます。ちなみにN列に打った関数は =IF(O3="","",IF(O3=VLOOKUP(O3,$X$1:$Y$202,2),VLOOKUP(O3,$X$1:$Z$203,3),#REF!)) です。しかももっとわからないことに、他にも同じ作業をさせているセルがいくつかあるのですが、唯一ココだけができないと言うことです。これはどうすれば良いのでしょうか? 下手な質問で申し訳ありませんが、これでわかる方がいましたら、是非、是非力を貸してください! よろしくお願いします。