• 締切済み

集計後の数値が倍になる

Oracleで簡単な集計処理を作成しているのですが、 集計後の値が倍になってしまいます。 ローカル環境でテストした際には問題なく 集計可能なのですが、テスト環境にアップした際に 倍になる現象が発生しました。 ■ローカル環境 Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product ■テスト環境 Oracle Database 9i Enterprise Edition Release 9.2.0.4.0 DBやテーブルの設定の問題かと思っておりますが、 検討がつかず困っております。 調査の方向性などだけでもご教授いただけましたら幸いです。 よろしくお願いいたします。

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

#1です。 > 同じデータであることは間違いありません。 #2さんのご指摘のとおり、確認することからはじめたほうがよさそうですよ。 「レコード件数が一致しているか」二つの環境を確かめましたか? まずは結合しないで、レコード数と数値項目のSUMを取得。 select count(*), count(DISTINCT ID) from MST_ENTRY; 同数が得られれば良いが、2:1の結果が出るようなら 「ID列にPRIMARY KEY貼り忘れてる&うっかりINSERTを2回実行」とか。 select count(*), sum(MCNT), sum(PCNT) from TBL_VOTE; こちらも二つの環境で完全一致しますか?

amane123
質問者

補足

ご回答ありがとうございます。 ご指摘の通り、データの確認不足があります。 TBL_VOTEの内容は確認していましたが、 MST_ENTRYの確認はしていませんでした。 今手元に環境がないので確認が取れ次第 ご報告いたします。 ありがとうござます!

全文を見る
すると、全ての回答が全文表示されます。
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

テスト環境ではデータ行数が倍だった,なんてよくある話ですよね。

全文を見る
すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

同じ構造・同じデータ・環境のみ異なる状況で結果が倍なのか? SQL文とテーブル構造を示していただくことは可能ですか?

amane123
質問者

お礼

早速のご回答ありがとうございます。 補足にSQL文とテーブルレイアウトを掲載させていただきました。 お気づきの点がございましたらアドバイスお願いいたします。

amane123
質問者

補足

テストデータ及びソースはローカルと全く同じものを使用しているので 同じデータであることは間違いありません。 ただ、DBの作成がクライアントの管理体制の関係で直接触ることができないため、構造、環境が同じであるかどうかは不明です。 ※テーブルに関してはこちらでcreate文を作成して送っているので おそらく同じ構造になっていると思われます。 下記はテーブルのレイアウトです。 ■MST_ENTRY ----------------------------------------------------------------- ID(NUMBER)|NAME(VARCHAR2) ■TBL_VOTE ----------------------------------------------------------------- DIVISION(NUMBER)|TIME(DATE)|ENTRY(NUMBER)|MCNT(NUMBER)|PCNT(NUMBER) ※TBL_VOTEに日ごとの数値を格納し、全データを集計します。 下記は問題のSQL文です。 SELECT ENTRY,E.NAME,SUM(MCNT) MCNT,SUM(PCNT) PCNT FROM TBL_VOTE V LEFT JOIN (SELECT ID,NAME FROM MST_ENTRY) E ON V.ENTRY = E.ID GROUP BY ENTRY,E.NAME

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EM express が起動できません。

    オラクル勉強中の初心者です。 Oracle VM VirtualBox を用いた Oracle Database 12c Release 1 環境の構築 http://www.oracle.com/technetwork/jp/database/enterprise-edition/documentation/index.html 上記のホームページを参考にwindows上にLinuxを構築し、oracle12cをインストールしています。 なぜか、最後の段階の EM express が起動しません。 Firefox上では、 接続がリセットされました と表示されます。 ・リスナーは起動しています。 ・listener.ora、sqlnet.ora、tnsnames.oraも問題はなさそう ・プラガブルデータベースも立ち上がっていますし、alter database open;も問題ないです。 ・ファイアウォールやプロキシも問題はなさそう。 ・リナックス上で検索しても、emctlというファイルが見当たらない emctl start dbconsole をコマンドを打つと、 コマンドが見つかりません と表示されます。 これはEM expressがインストールされてないということなのでしょうか?別途インストールが必要なのでしょうか?(DBCAで、EM expressを構築するにチェックは入れていたと思いますが) また、非常に分かりやすかったので、下記のホームページも参考にしましたが、それでもEM expressが起動しません。 Oracle12c Enterprise Manager 接続できない問題 http://blog.sys-nag.net/?p=329 どなたか分かる方、教えていただければと思います。 よろしくお願いします

  • oracle databaseインストールできない

    Oracle Database 12cをインストールできません。 インストールの際に、下記のエラーが出ます。 ----------------------------------------------------------- Oracle Database 12cリリース1インストーラ [INS-30131]インストーラの検証実行に必要な最初の手順が失敗しました。 原因- 一時的な場所へのアクセスに失敗しました。 アクション- 現在のユーザーに、一時的な場所へのアクセスに必要な権限があることを確認してください。 追加情報: -すべてのノードでフレームワーク設定のチェックが失敗しました -原因:問題の原因はありません -アクション:ユーザー処理はありません 失敗したノードのサマリー -exectaskのバージョンはノード"○○○"から取得できませんでした -原因:問題の原因はありません -アクション:ユーザー処理はありません ----------------------------------------------------------------- PCはwindows8.1で、64bitです。 ダウンロードのファイルは、日本オラクルのダウンロードサイトから、 「Oracle Database 12c Release 1」の 「(12.1.0.1.0)-Standard Edition,Standard Edition One, and Enterprise Edition」の 「Microsoft Windows x64(64-bit)」の「File1,File2」をダウンロードしました。 http://www.oracle.com/technetwork/jp/database/enterprise-edition/downloads/index.html?ssSourceSiteId=ocomjp ダウンロードした2つのファイル ・winx64_12c_database_1of2 ・winx64_12c_database_2of2 の「winx64_12c_database_2of2」の「database」にあるファイルを、 「winx64_12c_database_1of2」の「database」の中にコピーし、 その後に「winx64_12c_database_1of2」の中にある「setUp」を実行しました。 どうすればインストールできるのでしょうか。

  • ORACLE 大量レコードの削除

    Oracleで大量レコードを削除する場合、 どういった方法を取ればよいですか? 削除予定レコード数は約2万件です。 以下は使用しているOracleのversionを調べたものです。 Oracle Database 10g Release 10.2.0.2.0 - 64bit Production これだと、partitionが使用できないと思われるので (Enterprise Editionじゃないから)どなたかお力添えをお願いします。

  • SQLPLUS USER/PASSログインできない

    sqlplus testuser/passwd@TESTの形式ではログインできますが、sqlplus testuser/passwdだとORA-01034、ORA-27101が発生します。 ORACLE_SIDは正しくセットしていますが、どのように調査すればよいか分かりませんので、教えて下さい。 以下は実行結果です。 USER[2]% sqlplus testuser/passwd@TEST SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:19:45 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 SQL> exit Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsとの接続が切 断されました。 USER[3]% setenv ORACLE_SID TEST USER[4]% env | grep ORACLE ORACLE_SID=TEST ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1 ORACLE32_HOME=/home/oracle2/32Bit ORACLE_TERM=sun5 USER[5]% sqlplus testuser/passwd SQL*Plus: Release 11.2.0.1.0 Production on 水 1月 11 22:20:17 2012 Copyright (c) 1982, 2009, Oracle. All rights reserved. ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist SVR4 Error: 2: No such file or directory プロセスID: 0 セッションID: 0、シリアル番号: 0

  • Oracleを始めようと思うのですが・・

    今後必要になりそうなのでOracleを導入して自宅で学習しようと思います。 そこでいろいろと分からないことが出てきました。 OracleのサイトでFree Downloadというリンクがありました。 http://www.oracle.com/technology/software/products/database/index.html これを観てみるとStandard, Enterpriseエディションへのリンクがあり、 そしてなぜか10gのExpress Editionへのリンクもありました。 (Express Editionは10gしかない?) これらのバージョンは全て1ヶ月程度の試用版ということでしょうか? あるいはダウンロードはできるけど使用にはシリアルなどを入力しないと使えないということなのでしょうか? それとオラクル10gまたは11gなどを利用する際はVistaのHome PremiumとかXPのHome Editionなどでも使えるのでしょうか? 私の自宅では無線LANなので無線LANなどでもオラクルは使えるのか、などいろいろと疑問が出てきてしまいました。

  • PHPとOracleの接続が全く分かりません。

    PHPを使って、Oracleに接続したいのですが 接続方法がよく分かりません。 初めに、何から始めればいいのか?? 初歩的な事も分からない状況です。 <環境>  OS :Windows XP Profesional  DB :Oracle9i Enterprise Edition Release 9.2.0.1.0  Webサーバ:apache http server 2.0.53  WEB :PHP 5.0.4 どうぞ、よろしくお願いします。

  • sql plusのダウンロードとインストール

    会社でOracleのデータベースを使用しているので、自宅で勉強しようと思いネットで検索したところ、制限はつくものの無料で使用することができる Oracle 10g Express Editionというものを発見し、早速インストールしてみました。 しかし、会社の研修ではsql plusというもので、操作を行っていたのですがこのOracle 10g Express Editionにはsql plusが入っていませんでした もしかしてこのOracle 10g Express Editionではsql plusは使用することができないのでしょうか? 参考書として、現場で使えるSQLという本に、Oracleのインストール方法とsql plusの使用方法は書いてあるのですが この本でインストールしているものはoracle database 10g release 2という30日間のみ使用可能なトライアル版であり 今回私がインストールしたOracle 10g Express Editionの説明ではありません。 この本にはoracle database 10g release 2をインストールすると スタートメニュー→プログラム→oracle -oraclient 10g_home1→アプリケーション開発→sql plusとう順番でsql plus起動させることができますが、私のPCにはスタートメニューにsql plusはありませんでした。 どなたかOracle 10g Express Editionでsql plusを使用する方法を知っているかたはいないでしょうか? 長文かつわかりにく文章で申し訳ございませんが教えていただけると幸いです。

  • ORACLE SQL DeveloperでのDBへの接続でORA 01017エラー

    私は今、ORACLE 10g Express Editionをインストールして、 操作を試しています。 データベースのホームページにて、新しく"ORAUSER"という名前のユーザーを作成し、すべての権限をチェックし、同ユーザーでデータベースのホームページに再ログインすると、正常にログインできます。 SQLPLUSを起動して、作成した"ORAUSER"でCONNECTコマンドを発行しても正常に接続できます。 ただ、Oracle Sql Developerを利用して接続するとORA 01017エラーになってしまいます。 同ツールを利用してSYSユーザーで接続した場合は、正常に接続できます。 なんども試した為、パスワードの記述に間違いは無いとおもうのですが、 何か問題があるのでしょうか。 ご教授よろしくお願い致します。 環境 Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product Oracle SQL Developer Version 1.2.1 Build MAIN 32.13 OS Windows XP Home Edition

  • Oracle9iで必要なインストール領域とメモリ領域について

    Oracle9i(Database Enterprise Edition)を導入しようしており、必要なディスク容量 やメモリ量を見積もっています。環境はSolaris9です。 ・インストール領域としてどれだけの領域が必要でしょうか?おおそよの数値で  けっこうです。 ・Oracleで使うメモリ容量を算出する方法があればおしえてください。  「ここに出ていますよ」という情報でもけっこうです。 よろしくお願い致します。

  • 11gデータから10gへのインポートについて

    あるシステムのDB管理を行うにあたり、 Oracleを使用しているのですが、 Oracleのバージョンの違いにより、 DMPファイルのインポートが行えない事はございますでしょうか? 詳細は以下です。 ローカル環境のシステム Oracle 10g / 10.2.0.1.0 社内環境のシステム Oracle 11g / 11.2.0.1.0 社内環境システムよりバックアップを行い出力されたDMPファイルを ローカル環境へインポートを試みたところ、 以下のエラーが発生し、インポートができません。 *************************************************************************** 接続先: Oracle Database 10g Release 10.2.0.1.0 - Production IMP-00010: 有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 IMP-00000: エラーが発生したためインポートを終了します。 接続先: Oracle Database 10g Release 10.2.0.1.0 - Production IMP-00010: 有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 IMP-00000: エラーが発生したためインポートを終了します。 *************************************************************************** 解決方法をご存知の方がおられましたら ご教示いただけると有難いです。 以上、宜しくお願い致します。