- ベストアンサー
データの挿入?!
データベース初心者です。何を使って、どうしたらいいのかわからないので教えてください!! A B 1 12 2 150 3 24 4 50 7 99 A B 1 12 2 150 3 24 4 50 5 0 6 0 7 99 A列には1から438までの値が昇順に並んでいるのですが、途中いくつかの数字が抜けている状態です。 A列にもとのデータがない場合(数字が抜けている場合)、C列に「0」を挿入するのはどうしたらいいのでしょうか? テキストデータなので、EXCELに貼り付けて関数でやろうとしたのですが、行数が多すぎてインポートできませんでした。なんだか説明が下手ですみません。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
うーんと、 1.出発地点コードと到着地点コードの全組み合わせのテーブルをつくる。 2.上でつくったテーブルとデータのテーブルを外部結合する。 とすれば、できると思います。
その他の回答 (2)
- tosi0000
- ベストアンサー率28% (8/28)
こんにちわ。 色々とやり方があると思いますが、 以下の手順でやってみてはどうでしょうか? 1.ワークテーブルを作成する。(一時的に使用するものです。) 項目は連番。一つのみ。 CREATE TABLE ワーク (連番 NUMBER) 2.ワークへ1~438までの連番をセットします。 insert ワーク VALUES (1) insert ワーク VALUES (2) ・・・・・ insert ワーク VALUES (438) 3.SELECT文で外部結合を行います。 内容確認です。 select 連番 , NVL(B,0) from ワーク 目的 where 連番 = A(+) AND A IS NULL 4.結果をINSERTしましょう。 Insert into 目的表 select ・・・(3を複写) こんな感じで出来ると思います。 データベースが何か書かれていないので、 コマンド文は参考程度です。 実行確認していませんので間違いあるかと思います。 あとはプログラムを作ってしまうか、access等のデータベースにリンクor直接作成の環境の中で、1~4と同様の処理内容を行うかと言ったところでしょうか。 実行環境がわからないので、まとが外れているかも・・・。
お礼
とりあえずアクセスでやってできました。 ありがとうございました。
- GuruGuru22
- ベストアンサー率51% (177/346)
> A列には1から438までの値が昇順に並んでいるのですが 1~438 までなのに、なぜ行数が多すぎるのですか。 Excel、ヴァージョンにもよりますけど、 65536 行まで大丈夫ですよね。 1~438 が何回か繰り返すのですか。
補足
めちゃめちゃ早いレス、ありがとうございます。 感激です!! そうなんです。これを438回繰り返して、438×438行のデータにしたいのです。 詳しく言いますと、A列には到着地点コードが入力されていて、それが1~438となっています。同様にC列には出発地点コードが1~438入力されています。出発地点1から到着地点1まで移動した人数がB列の値です。出発する地点1に対して到着する地点が438あるので、最終的に438×438行のデータにしたいのです。説明がうまくなくてすみません。 今あるテキストファイルをアクセスにインポートしたところ、100000レコード以上あったので、EXCELに全てインポートできませんでした(涙)
お礼
なんとかできました。 ありがとうございます。