• ベストアンサー

表中にNULLが含まれる場合の計算について

 データベース内の、ある表において、各社員の一日の自動車走行距離の合計をsumを用いて計算するさいに、NULLが含まれる場合、NULLのところは、0として計算してくれるのでしょうか?  例えば、三人の社員がいて、走行距離のフィールドの値がそれぞれ、5、3、NULLだった場合、sumで合計を出すと、8と正しく表示されるのでしょうか。  以前に、ある数値にNULLをかけても、0にはならず、NULLになるということを聞いていたので、足し算の場合はどうなるのかわからなかったので、質問いたしました。

質問者が選んだベストアンサー

  • ベストアンサー
  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

確認しました。 ちゃんと 合計が表示されましたよ。 文字列の結合とかする場合、Nullが含まれていると Nullになってしまいます。

noname#4520
質問者

お礼

そうですか。足し算の場合は正しく計算されるんですね。助かりました。ありがとうございます。

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

その他の回答 (1)

回答No.2

通常、NULL値を含むデータでの計算を行う際、最大の安全を見越して、NULLを排除しますね。 Accessの場合は、iif([フィールド1]=null,0,[フィールド1])と、こうしてやればNULL値があっても、問題なく計算されますし、一見NULLであると思われるフィールドに、スペースが入っている場合等は、更に、空白を排除する数式を組んでやれば、数万件のデータを見直すなんて事をしなくても済みますよ。

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

関連するQ&A

  • Accessで値がnullの場合は計算せずにnullをかえす方法

    Accessについて、教えてください。 クエリで抽出しているときに、フィールド1とフィールド2の数値を掛け算した値をフィールド3に表示したいと思っています。(小数点1位まで表示) フィールド1とフィールド2は値がnullの場合もありますが、この場合は「0」として扱うのではなく、そのまま計算結果もnullにしたいと思っています。 最初は単純に フィールド3: ROUNDMS2(ROUNDMS([フィールド1],1)*ROUNDMS([フィールド2],1),1) とクエリに表記したのですが、この場合「フィールド1」や「フィールド2」がnullの場合は#ERRORが表示されました。 次に、IFでフィールド1やフィールド2がnullの場合は計算せずにnullをかえしてもらおうと下記のような文をつくりました。 フィールド3: IIf([フィールド1]=Null,Null,IIf([フィールド2]=Null,Null,ROUNDMS2(ROUNDMS([フィールド1],1)*ROUNDMS([フィールド2],1),1))) これでもやっぱり#ERRORが表示されます。 いろいろと検索したのですが、nullを0として扱う例は多数見つけられましたがnullのまま扱う例が見つけられませんでした。 勘違いしているところがあるかもしれませんが、アドバイスよろしくお願いいたします。

  • 串刺し合計値と単純合計値の違いについて

    Excel2007で異なるブック(ファイル)の串刺し合計を行っています。 その基となるブックのシート(表)では合計値を足し算やSum関数を用いて求めています。 その基となる表の合計値を串刺しした値と串刺しした表で足し算やSum関数で求めた数値が一致しないのです。何故か解らずにおります。 一致させるにはどうした良いか?または一致しない理由を突きとめるにはどうしたら良いか?ご教授いただけないでしょうか? 基となるブック(ファイル)の計算式や串刺し合計の計算式は何度も確認しました。

  • エクセルで表を作り、SUM関数などで、計算した。下のバーに、再計算とい

    エクセルで表を作り、SUM関数などで、計算した。下のバーに、再計算という表示が出る。なぜか。 合計する数値を変えても、合計に反映されないので、何か分からない。教えていただきたい。

  • group by  0とnull値は、平均値の計算から省きたい

    行ないたいこと group by avgのSQLで、0とnull値は、平均値の計算から省きたい 各フィールドの平均値を出力したいのですが、 0とnullの値は、平均値の計算から省いて計算する必要があります。 (分母にカウントしません) 平均値を求めるフィールドが、1つだけなら、条件式を作成することが出来たのですが、同時に3つのフィールドの計算を求める必要があります。 環境:oracle10 -table hoge 日付, a , b, c 5/4 200,null,50 5/5 200,100,0 5/6 200,null,100 期待する値(各フィールドの平均値、だたし0とnullは分母から除外) a = (200+200+200)/3 = 200 b = 100/1 = 100 c = (50+100)/2 = 75 質問1. このようなSQLは実現可能でしょうか? 質問2. 実現可能であれば、ご教示いただきたいのですが… よろしくお願いいたします。

  • エクセルの表計算

    皆様よろしくお願いします。エクセルで表計算(単純な足し算)を しています。セルに数字を入れると 合計が、でるものです。いままで 何もなかったのですが、なぜか今月に入ってから 合計が、出なくなってしまいました。数式が、消えてしまったのかと思って、合計欄を見ると 合計のところには、数式は入っていました。それからそのシートは、セルに数字を入れて、合計欄に再度数式を入れないと 計算しなくなりました。なぜでしょうか・・。

  • NULL値を含む場合のフィルタ

    アクセスです。 テーブルに フィールド1 フィールド2 A    B       B  C       C と入ってるとします。 フィールド2についてはNULL値のレコードもあれば、 値が入ってる場合もあります。 このテーブルをフォームにひもづけていて、(帳票フォームにしています) フォームヘッダーにテキストボックス2つとコマンドボタンがあり Private Sub コマンド_Click() Me.Form.Filter = _ "フィールド1 like '*" & Me.テキスト_1.Value & "*'" & " and " _ & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" Me.Form.FilterOn = True End Sub としたときに、レコードのフィールド2に文字が入ってる場合は、抽出できるのですが、 フィールド2がNULLの場合は、1件もヒットしません。 テキスト_1にはAを入れて テキスト_2には何も入れないで検索してみると、1件もヒットしませんが、 テキスト_1にBを入れて検索すると、Bのレコードが抽出されます。 もちろん テキスト_1もテキスト_2もBをいれても、Bのレコードが抽出されます。 VBAコードで & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" としてるので、NULL値でも抽出されると思ったのですがなぜ何も抽出されないのでしょうか? ワイルドカードでnull値も検索されないのでしょうか? テーブルのフィールド2のデータをNull値ではなく、””にしたら、問題なく抽出されましたが データのNull値はNull値のままにして、空白などの文字には置き換えたくないです。 (というか、すべてのNULL値に空白を入れる作業が大変なのでやりたくないです。 実際のフィールド数は50個くらいあります) よろしくお願いします。

  • ExcelのSUMを使用して足し算をすると違った答えになります

    合計が違ってきます。 1)Excelの掛け算をした結果(四捨五入の値で表記)を表記されている数値で足し算 2)掛け算されているセルをSUMを使って足し算をする(四捨五入) 合計が違う結果となる場合があるので困っています。

  • EXCEL2010での表計算の質問です。

    EXCEL2010での表計算で列の単純な合計なのでSUM関数でいいのですが、単位(円)のついた数字列を計算したいのです(合計も円付きの数字)。どうしたらいいのでしょうか。おしえてください。お願いします。

  • エクセルの簡単な計算式で・・・・

    初心者です。エクセルの表で、計算式・・縦合計の数式を 例=SUM(A5:A35)と入れており、その上部のセルに毎月異なる数値を打ち込んで自動計算していたのですが、先月から数値を打ち込んでも合計数値が変わらなくなってしまいました。(前月の合計数値のままです。) 合計数式の入ったセルをダブルクリックすれば正しい合計数値が現れるのですが、膨大な数の数式が入っている為、非常に時間がかかります。なぜこのようなことになったのかがまったく解りません。 どなたか以前の様に自動計算される方法を教えてください。 よろしくお願いいたします。

  • Wordで表の数値の合計が出来なくなった

    Wordで表の数値の合計する場合、「合計」の欄へカーソルを移動させ、メニューバーの「罫線」→「計算式」をクリックし、計算式に「=SUM(LEFT)」と入力して「OK」をクリックすれば出来ていたのですが、何故か出来なくなりました。 何か設定が変わったのでしょうか。解決策を教えてください。