こんにちは。PRGで行き詰まってしまい皆様のお知恵を借りたいと思い投稿しました。
まだOracle初心者のへっぽこシステム管理ですが、お上よりDB(Oracel)からある条件でデータを取って来て
Excelに出力してほしいと頼まれました・・
生産実績管理サーバー(Oracel9)の実績テーブルには、
生産日|工場No.|商品名|機械No.|生産数|
4/1|100|ケーキ|A|100|
4/1|100|ケーキ|A|120|
4/1|100|チョコ|A|150|
生産計画目標サーバー(Oracel8)の計画目標テーブルには、
機械で出来る計画能力が入っております
工場No.|商品名|機械No.|計画生産数|
100|ケーキ|A|150|
100|チョコ|A|150|
上記のテーブルのデータをVBでoo4oで接続して、Excelに出力したのです。
Excelへの完成一覧表は、条件で生産日を4/1で、工場を100で、
商品名|機械No.|生産数|計画生産数|
ケーキ|A|220|150|
チョコ|A|150|150|
にしたいのです。
【VB】
Set oraSes = CreateObject("OracleInProcServer.XOraSession")
Set ora9 = oraSes.OpenDatabase("実績","実績/実績”,0&)
Set ora8 = oraSes.OpenDatabase("計画","計画/計画”,0&)
strSQL1 = "select 商品名,機械No.,Sum(生産数) from 実績 " & _
"where 生産日='4/1' and 工場名='100' "
"group by 商品名,機械No. order by 商品名,機械No."
Set oraDs9 = ora9.DbCreateDynaset(strSQL1,4&)
strSQL2 ="select * from 計画目標"
Set oraDs8 = ora8.DbCreateDynaset(strSQL2,4&)
Excel起動(省略)
Excelに書き込む・・・・
これが現在までのPRGなのですが、oraDs9で取得して来た商品名と機械No.をKeyにして
Oracel8の計画目標テーブルから計画生産数を取得、それを結合して、一気にExcelに書き出したいのです。
oraDs9の商品名と機械No.を配列変数に入れて、Doでora8へSQL文を回すようなやりかたはあまりしたくないのです。
Oracleで一気に検索して、上記の欲しい一覧表を取得できたら最高なのですが・・・・
またExcelに書き出す方法は、ExcelでoraDs8をDo~Loopで書き出していくしか無いのでしょうか?
書き出すサンプルソース・参考になるようなものがありましたら教えて下さい。
もしOracelで、一気にExcelに書き出せる方法がありましたら教えて下さい。
色々と聞いてしまって申し訳ございませんが、何卒宜しくお願いします。
No.1ベストアンサー
- 回答日時:
異なるデータベース間のデータを使用する方法は以下があります。
(1)データベースリンクを使用する
(2)ファイル経由でどちらかのDBに必要なデータを集める。
データウェアハウスを構築するなら相互参照可能な環境を構築すべきです。
それが出来れば、UNIONなりジョインなりで集計可能でしょう。
あと、計画と実績って、オーダーに対して発生しますが、
以下のような場合を考慮できているんでしょうか。
オーダーA
■ケーキを4/1に1000個作る計画
■それに対して4/1に500個の実績、4/2に500個(計画遅れ)の実績
オーダーB
★ケーキを4/2に1000個作る計画
★それに対して4/2に500個の実績、4/9に500個(計画遅れ)の実績
これを日単位の集計のみで見てもあまり意味がないと思います。
以下のように累計で集計した上でZグラフで見ないと
計画の進捗率などは把握できないと思います。
日 計画 実績 計画累計 実績累計
--------------------------------------------
4/1 1000 500 1000 500
4/2 1000 1000 2000 1500
4/9 - 500 2000 2000
4/2の実績はオーダーAの計画が1000に対してAとBの実績が合算して1000になっており、計画通りに見えてしまいます。
※累計でみると4/2は500個の遅れが発生してます。
私が関わったシステムと考え方やデータの持ち方が異なっていて
問題がなければいいのですが。
回答の方、遅くなり大変申し訳ございませんでしたTT
大変勉強に成りました!! 本当に感謝しております☆
考慮点は脱帽でした^^ 今後共宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- 中途・キャリア さて、社会人になってから13年目。 今まで、機械設計、機械製品の品質管理、部門の経営企画をやってきま 4 2023/07/17 08:59
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- 会社・職場 仕事で成果が全く挙げられずこのままクビになるのでしょうか? 5 2023/08/23 18:48
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
likeとsubstrの使いわけについて
-
WHERE句の実行順序
-
Like文の速度について教えてく...
-
キャッシュを使わずにSELECTを...
-
実行計画HASH JOIN RIGHT OUTER
-
SQL ORDER BYにおける条件について
-
DATE型カラムのインデックスが...
-
アナライズでほとんどの処理が...
-
あいまい検索のパフォーマンス...
-
Oracle8,9で取得したデータを結...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
SQLサーバで和暦から西暦に変換...
-
PL/SQLカーソルの2重FORループ...
-
Statement ignored というエラー
-
sqlplusでヘッダーが付かない
-
Accessの数値から時間に変換す...
-
或るプロシージャの呼び出し元判定
-
エクセルVBAでUserFormを起動し...
-
PL/SQLでのSQL文法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
likeとsubstrの使いわけについて
-
WHERE句の実行順序
-
Like文の速度について教えてく...
-
WHERE句はJOIN結合前結合後どち...
-
ヒント句が無効になります
-
JOINの時のONとWHEREの違いにつ...
-
あいまい検索のパフォーマンス...
-
アナライズでほとんどの処理が...
-
SQL ORDER BYにおける条件について
-
800万件のテーブル読み込み...
-
問題解決のストーリーにて PDCA...
-
実行計画HASH JOIN RIGHT OUTER
-
oracleのanalyzeと処理時間につ...
-
PDCAを回すって?
-
【チューニング】インデックス...
-
Oracleで検索すると、フリーズ...
-
Oracle 実行計画、統計情報の見方
-
OEMで負荷の少ないSQLの実行計...
-
データ抽出の速度について
おすすめ情報