C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: SQLで重複したデータのみ合計したいです。


(過去ログ 73 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■42638 / inTopicNo.1)  SQLで重複したデータのみ合計したいです。
  
□投稿者/ ALSKA (1回)-(2009/10/19(Mon) 18:47:54)

分類:[VB.NET/VB2005 以降] 

よろしく、お願いいたします。

IDはプライマリーキーです。CODEが重複できます。で同一のCODEが存在する場合はMONEYをサマリー結果を取得したいです。

SELECT ID,CODE,MONEY
FROM AAA

引用返信 編集キー/
■42647 / inTopicNo.2)  Re[1]: SQLで重複したデータのみ合計したいです。
□投稿者/ HiJun (137回)-(2009/10/19(Mon) 20:59:59)
こんなんでいいのかな。

Select CODE, SUM(MONEY) FROM AAA
GROUP BY CODE

引用返信 編集キー/
■42650 / inTopicNo.3)  Re[2]: SQLで重複したデータのみ合計したいです。
□投稿者/ オショウ (349回)-(2009/10/19(Mon) 21:32:35)
No42647 (HiJun さん) に返信
> こんなんでいいのかな。
>
> Select CODE, SUM(MONEY) FROM AAA
> GROUP BY CODE

  表題の重複データのみ・・・
  とあるので

  Select CODE, SUM(MONEY) FROM AAA
  GROUP BY CODE
  HAVING
  count(*)>1

  だと思います。

以上。

引用返信 編集キー/
■42652 / inTopicNo.4)  Re[3]: SQLで重複したデータのみ合計したいです。
□投稿者/ ALSKA (3回)-(2009/10/19(Mon) 21:44:11)
No42650 (オショウ さん) に返信
> ■No42647 (HiJun さん) に返信
>>こんなんでいいのかな。
>>
>>Select CODE, SUM(MONEY) FROM AAA
>>GROUP BY CODE
>
>   表題の重複データのみ・・・
>   とあるので
>
>   Select CODE, SUM(MONEY) FROM AAA
>   GROUP BY CODE
>   HAVING
>   count(*)>1



   COUNT(*) > 1 はどういう意味ですか?

   もし、テーブルのプライマリーキーが3つID1,ID2,ID3であっても、上のsql文okですか?

   実、テーブルはプライマリーキーが3つです。
   で上のsqlをオブジェクトブラウザで実行すると
   ORA-00979:NOT A GROUP BY expressionというエラーがでますが、
よくわかりません、教えてください。

引用返信 編集キー/
■42655 / inTopicNo.5)  Re[4]: SQLで重複したデータのみ合計したいです。
□投稿者/ 囚人 (421回)-(2009/10/19(Mon) 22:12:27)
元データと出力の例書いてみたらどうです?
解釈次第で可能性広がって、正確に答えでませんよ。

>SQLで重複したデータのみ合計したいです。

SQLで重複したデータのみ合計し、全部出力する。
or
SQLで重複したデータのみ合計し、重複したデータのみ出力する。
のか。

もう Oracle ってわかりましたけど、先に DBMS が何か書いとくのはマナー。

引用返信 編集キー/
■42656 / inTopicNo.6)  Re[4]: SQLで重複したデータのみ合計したいです。
□投稿者/ オショウ (350回)-(2009/10/19(Mon) 22:37:45)
No42652 (ALSKA さん) に返信
>    で上のsqlをオブジェクトブラウザで実行すると
>    ORA-00979:NOT A GROUP BY expressionというエラーがでますが、

  オラクルでしたか・・・
  じゃ〜文法エラーになりますネ!

  『オラクル使い』さんに、お任せします!
  お後、よろしくです・・・

以上。
引用返信 編集キー/
■42667 / inTopicNo.7)  Re[5]: SQLで重複したデータのみ合計したいです。
□投稿者/ かたぎり (13回)-(2009/10/20(Tue) 00:48:42)
Oracle環境が無いので、脳内ですが。

SELECT CODE,SUM(Money)
FROM AAA
WHERE CODE IN
(SELECT CODE FROM
(SELECT CODE,
CASE COUNT(ID)
WHEN 0 THEN 0
WHEN 1 THEN 0
ELSE 1
END AS COUNT
FROM AAA
GROUP BY CODE)
WHERE COUNT = 1)
GROUP BY CODE

ただし、CODEにインデックスを作っておかないとかなり効率の悪いSQLの予感がしますorz
もっとシンプルはできそうですけど。
引用返信 編集キー/
■42673 / inTopicNo.8)  Re[6]: SQLで重複したデータのみ合計したいです。
□投稿者/ ALSKA (4回)-(2009/10/20(Tue) 09:27:29)
ありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -