すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11677  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

嘘つきぃっ(号泣)<おいこらまて

今、発覚している=直面している=修羅場の引き金になっている問題

あるファイルのデータがあります。フィールドはキー項目と、数値項目(小数点あり)のカンマ区切り。


前システム(今、数値が正しいとされているシステム)【VB.NETで集計】

ファイルをTextParserで読み込み、Datasetに保存、明細テーブルへINSERT
別途、数値項目はdouble型のワークに足しこんでおく
足しこんだ結果を、合計テーブルDatasetに入れて、InsertメソッドでSqlServerのmoney型に保存


今度のシステム【SQLServerで集計】

ファイルをBULKINSERTして数値項目をmoney型で明細テーブルに取り込み
SQL文でSUMって結果を合計テーブルMoney型に保存



合計値に差異がでやがります(死)それも結構大きかったり……

明細データ、いっしょなのに(号泣)

だから浮動小数点とかって嫌いなんだぁぁぁぁ!

って打開策はまだ見出せず(遠い目)アヒルのワルツを歌いながら悩み続けるアホの片桐……

投稿日時 : 2007年6月7日 12:19

コメント

# re: 機械、うそつかない 2007/06/07 13:00 かるあ
正しいとされているのが、誤差が入った値なのか。。。

# re: 機械、うそつかない 2007/06/07 13:01 επιστημη
あひるんるん あひるんるん 計算誤差は 一生一緒さあひるんるんるんるん♪


# re: 機械、うそつかない 2007/06/07 13:34 まさぶん
小数点がある数値項目をdouble型のワークに足しこんでおく?



# re: 機械、うそつかない 2007/06/07 13:43 まさぶん
×10000してdouble型のワークに足しこんでおく?



# re: 機械、うそつかない 2007/06/07 13:46 片桐
あひるんるん、あひるんるん、古いほうの~明細のデータも集計したよ~
同じ~条件でSUMってみたら~合計一致さ♪ あひるんるんるんるん

くぇっくぇっくぇっくわっくわっくわっ 爆弾みっけ♪
くぇっくぇっくぇっくわっくわっくわっ どうしようかな~♪

# re: 機械、うそつかない 2007/06/07 13:48 片桐
足しこみの方はいま動いてる現行システムなんですよね(遠い目)

さてどうしようかな~♪ 爆弾投げるのやだなぁ(おいこら)

# re: 機械、うそつかない 2007/06/07 13:49 ぽぴ王子
おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。

> 前システム
> 別途、数値項目は【double型】のワークに足しこんでおく
> 足しこんだ結果を、合計テーブルDatasetに入れて、InsertメソッドでSqlServerの【money型】に保存

> 今度のシステム
> ファイルをBULKINSERTして数値項目を【money型】で明細テーブルに取り込み
> SQL文でSUMって結果を合計テーブル【Money型】に保存

機械は嘘をついていないんだ。
つまり!嘘をついていたのは前システム(のdouble型)だったんだよ!

Ω ΩΩ<なんだってー!!

とりあえず前システムでdoubleを採用したやつを捜し出してボコるしか。

# re: 機械、うそつかない 2007/06/07 14:08 片桐
今の~画面~、おそい~から~、集計方法変えようと~
ファイル読込んで足しこんだ~.NETを変えた~のさ~

くぇっくぇっくぇっくわっくわっくわっ、あひるのわるつ~

ファイルそのまま取り込んで~SQLで計算さ~
とっても動きがはやくなり~、皆とってもよろこんだ~

けれど~なぜか~集計値~、とても合わない合ってない~
今のシステム、正しいと~それで~業務も動いてる~

くぇっくぇっくぇっくわっくわっくわっ、あひるのわるつ~

下っ端、何にも逆らえず~爆弾知ってて投げら~れず~
けれども数字があうように~作る方法みつからず~

くぇっくぇっくぇっくわっくわっくわっ、あひるのわるつ~

くぇっくぇっくぇっくわっくわっくわっ、どうしようかなぁ~

くぇっくぇっくぇっくわっくわっくわっ、元に戻す~?

……あー、もー、壊れてます<おいこら

# re: 機械、うそつかない 2007/06/07 15:58 まさぶん
爆弾を地雷にして、できるだけ上の人に踏ませてみるとか?


# re: 機械、うそつかない 2007/06/07 16:26 片桐
いまからぁそぉいつをぉ~、これからっそぉいつを~、なっぐりにぃいこぉかぁ~♪

今日はひたすら歌ってばかりです orz

ヒトカラして帰ろうかな(ぼそ)
(解説しよう、ヒトカラとは、ひとりカラオケの略で、ひたすら空しく壊れるごとく歌い続けてストレスをぶっとばすカラオケのことである)

とりあえず、集計値が異なっている、けれど明細は全て一致している、という証拠を固めて、報告書にまとめて問題定義しとくことにしました。

だって、機械は嘘ついてないし(ぼそ)

# re: 機械、うそつかない 2007/06/07 17:15 通り*
あくまで可能性の話ですが、例えば今までの処理では仕様上、マイナス値は加算しないなどのロジックが入っていたけど、新しいものにはそれが無いとか、そういったことはないの?
#状況で把握できていないところもありますが。「同じ~条件でSUMってみたら~合計一致さ♪」の所で何と一致したのかな~とか。
私の場合、経験上、人のバグを疑うのは最後にした方が吉と出てますので、そんなこと思いました。
バグありましたよ~って言ったら返り討ちにあうことがよくあるので...
#他のわんくまさんのエントリで「自分のバグは人の3倍」と書かれていましたね~


# re: 機械、うそつかない 2007/06/07 18:11 片桐
そうなんですよね、あくまでも、「自分のバグ、きっとそう」が前提でひたすら苦しんでたんですよ。昨日から(大汗)

で、本番サーバーに入らせてもらっての調査に踏み切っちゃったわけです。まぁ藪に手を突っ込んだってことですね(汗)

同じファイルを使って、前システムからデータベースに蓄積された同データと今回の方法で蓄積した同データを明細単位で比較(ここが単体テストだった)

から入って、

集計テーブルに入っている、今回のシステムで集計した値≠前システムで集計した値
明細データ、今回のシステムのデータ=前システムのデータ これもレコードKEY項目から数値にいたるまで全件比較して調査して、OK。

で、ここまで明白にできました。次に、

今回のシステムで集計に使用したSQL文で前システムで蓄積したデータを集計=今回のシステムで集計した値

これも証明できた。

すると今度は、集計条件になるわけで、ここは論理上で違っていない、つまり、前システムでも「この条件で抽出された上で集計されていないと困る」条件であることを再度、ドキュメントと今のシステム担当者から確認。調書も取った。

となると、

前システムはどうやら、条件がまちがっているか、集計値が誤差ってるかのどちらからしい←イマココ

ここまで調査進みました……って作業進捗報告になっとるがな(笑)

# re: 機械、うそつかない 2007/06/07 18:32 通り*
> って作業進捗報告になっとるがな(笑)
お疲れ様でしたw

> 前システムはどうやら、条件がまちがっているか、集計値が誤差ってるかのどちらからしい←イマココ
浮動小数の誤差の方向で話しが進んでいましたが、それでそんなに(どんなにかわからないし集計方法も知らないけど(^-^;)違いがでるのかなぁって思ったので、先ほどは書かせていただきました。
前システムのソースって見られないの?(Reflector とかで...)

早く「解決←イマココ 」になるといいですね!

# re: 機械、うそつかない 2007/06/07 19:08 刈歩 菜良
まさか、double を decimal に変えると誤差がなくなったってオチはないよね。

# re: 機械、うそつかない 2007/06/07 20:17 片桐
double集計の本人をGet!

話を聞いたところ、「集計値はあってませんよ。でもそれは想定の範囲内です」

 ぽ か ー ん   ぽ か ー ん   ぽ か ー ん

よって、明細はあってるし、集計値も違ってて正しいし<おい

   私 は 家 に 帰 ら せ て い た だ き ま すw

>かるぼさん
作った人いわく、decimal だとあうらしいです(を) これも想定の範囲内らしいw



# re: 機械、うそつかない 2007/06/08 0:44 ぽぴ王子
まあ、そんなもんですかね。とかしったか言ってみる。
とりあえずdouble集計本人の回答が聞けただけでもラッキーだったかと。

アレだ、とりあえず、そいつぼてくりこかせ。


僕が一番最初にやった.NETのプログラムだって、全部DECIMALで計算してたさ。
知らずにdouble使って合ってなかったアハッ☆とか言うならまだ電気アンマ
ぐらいで許してやってもいいけど、わかっててdoubleを使って、あまつさえ
想定の範囲とかぬかすやつはぼてくりこかせ。

警察は許さないかもしれないが、王子は許す(ぉ

# re: 機械、うそつかない 2007/06/08 9:53 とりこびと
ぼてくりこかすの意味がわからない件について。

# re: 機械、うそつかない 2007/06/08 10:04 シャノン
スーファミの某ゲームで、
「あん? なんばしよっとぉ、きさん。せからしったい!ぼてくりかこされたいとや!?」
って言われてパニクった俺(埼玉人)がいます。

# re: 機械、うそつかない 2007/06/08 15:22 片桐
いてまえーーーっ! ってことやんなぁ?

つか、なぜに土佐弁w

# re: 機械、うそつかない 2007/06/18 21:33 ぽぴ王子
みんな見てるんだろうか(笑)

>>ぼてくりこかす
はいどうぞ。
http://www.ronax.net/hakata/vocabulary02.htm

>>シャノンさんのセリフ
博多弁ではないかと…と、宮崎出身の嫁が言っております。

# re: √でしまる 2007/07/01 7:37 東方算程譚
re: √でしまる

Post Feedback

タイトル
名前
Url:
コメント