
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
集計後の数値が倍になる
-
select insertで複数テーブルか...
-
外部結合とor条件混在の記述方法
-
SET句内で複数の条件を指定して...
-
SELECTの結果で同一行を複数回...
-
MERGE文を単体テーブルに対して...
-
Oracleでの文字列連結サイズの上限
-
実績累計の求め方と意味を教え...
-
SELECTで1件のみ取得するには?
-
OracleのSQL*PLUSで、デー...
-
エラー2「無効な識別子です」
-
ADO VBA 実行時エラー3021
-
ヘッダレコードとトレーラレコ...
-
Oracle8iでSQL文の引数について
-
Excelでセルの書式設定を使用し...
-
ワードの差込印刷で教えて下さ...
-
データセットのレコード更新が...
-
レコードが存在しなかった場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
GROUP BYを行った後に結合した...
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
外部結合とor条件混在の記述方法
-
MERGE文を単体テーブルに対して...
-
SQL GROUPで件数の一番多いレコ...
-
SELECTの結果で同一行を複数回...
-
oracleの分割delete
-
集計後の数値が倍になる
-
固定値を含む結合と複数テーブ...
-
SET句内で複数の条件を指定して...
-
unionでマージした副問合せを結合
-
COUNTの取得方法(?)について...
-
Access 2つのテーブルで数量...
-
他のテーブルを参照した値はupd...
-
SQLの書き方(チェックボックス)
-
SQLで複数の条件がある場合
-
複数テーブルのMAX値の行データ...
-
半角英数字混在データから数字...
-
結合と副問い合わせの違い
おすすめ情報