
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やテーブルの設定の問題かと思っておりますが、
検討がつかず困っております。
調査の方向性などだけでもご教授いただけましたら幸いです。
よろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
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;
こちらも二つの環境で完全一致しますか?
この回答への補足
ご回答ありがとうございます。
ご指摘の通り、データの確認不足があります。
TBL_VOTEの内容は確認していましたが、
MST_ENTRYの確認はしていませんでした。
今手元に環境がないので確認が取れ次第
ご報告いたします。
ありがとうござます!
No.1
- 回答日時:
同じ構造・同じデータ・環境のみ異なる状況で結果が倍なのか?
SQL文とテーブル構造を示していただくことは可能ですか?
この回答への補足
テストデータ及びソースはローカルと全く同じものを使用しているので
同じデータであることは間違いありません。
ただ、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
早速のご回答ありがとうございます。
補足にSQL文とテーブルレイアウトを掲載させていただきました。
お気づきの点がございましたらアドバイスお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- 環境学・エコロジー 卒論のテーマの決め方について知りたいです。 自分は環境学部なので環境の分野と絡めたテーマにしたいです 3 2023/01/09 00:31
- ルーター・ネットワーク機器 AU光10G回線について 6 2022/07/25 00:12
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- 数学 高校時代電離平衡の計算に関しての質問です。 問題集で、 酢酸は水溶液中で一部が電離し、次のような電離 2 2022/10/22 18:59
- 大学受験 数学力補完計画 2 2022/07/30 23:59
- その他(悩み相談・人生相談) 人生って疲れるね 仕事が出来る能力だけじゃダメなんですよね 空気を読む能力がないと、集団から弾かれて 2 2022/06/03 04:13
- 発達障害・ダウン症・自閉症 発達障害かadhdか?健常か?教えて下さい。 私は小さい時から、空想に走る事が多い子供でした。 授業 3 2023/08/19 06:56
- いじめ・人間関係 いじめ被害者の方へご質問/答えられる範囲で構いません 6 2023/06/21 14:25
- 哲学 美大に通っている者です。美術関係の哲学を履修しています。 最近に出た課題の小テストについて、どれが正 2 2022/07/09 22:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
------------------------------
-
INNER JOINの有用性
-
SQLでの絞り込み検索
-
ファイルメーカーPro7で、階層...
-
SQL文で質問です
-
Left Joinについて
-
updateの一括実行
-
DELETE 文とEXISTSの使い方につ...
-
MERGE文を単体テーブルに対して...
-
外部結合とor条件混在の記述方法
-
GROUP BYを行った後に結合した...
-
SELECTの結果で同一行を複数回...
-
SET句内で複数の条件を指定して...
-
SQLサーバのデータをエクセルに...
-
クライアントからのDBアクセス
-
一度に連結したデータをSELECT...
-
実績累計の求め方と意味を教え...
-
DataGridViewの、選択されてい...
-
Accessのクエリでフィールドの...
-
同じ表内の比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
外部結合とor条件混在の記述方法
-
固定値を含む結合と複数テーブ...
-
oracleの分割delete
-
複数テーブルのMAX値の行データ...
-
unionでマージした副問合せを結合
-
SQL GROUPで件数の一番多いレコ...
-
SET句内で複数の条件を指定して...
-
他のテーブルを参照した値はupd...
-
unionの結果は集計はできないで...
-
COUNTの取得方法(?)について...
-
結合と副問い合わせの違い
-
マテビューのNOTNULL設定について
-
SQLの書き方(チェックボックス)
-
DELETE 文とEXISTSの使い方につ...
-
ある条件を持たないレコードの抽出
おすすめ情報