プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になります。
とっても基本的なことですが、データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに記入したいのです。
 A+B+Cという式を入れた選択クエリを作ってその集計をDに返すようにしたのですが、A,B,Cとも数値が入っていないと空白になります。テーブルの規定値には
0が入っているのでいいと思うのですが(汗)
多分ホントに簡単なことかと思うのですが、判りません(泣)
よろしくお願いいたします。

A 回答 (2件)

> データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに


> 記入したいのです。

大前提というか、リレーショナルデータベースの一般的な考え方として。

○計算で求めることができるものはテーブルに持たない
○集計等をする場合、横(フィールド)方向ではなく、行(レコード)方向に
 展開するようにテーブル設計する

なんてのがあります。

[ACC2000] データベースの正規化の基礎
http://support.microsoft.com/default.aspx?scid=k …

こういったことを考えずに、Excelの考え方で作成していくと、ドツボに
はまることがほとんどですね。。(^^ゞ
    • good
    • 0
この回答へのお礼

有り難うございます。
前回の決算台帳をエクセルで作成していてそのデータをインポートして、そのデータをたたき台にしてデータベースを作っているのでいろんな矛盾が出てきてしまいます。
 当分いろいろな(どつぼ)にはまるかと思いますので(汗)また、色々教えてください。
どうも有り難うございました。

お礼日時:2004/12/28 20:51

選択クエリーでは、Dの値は更新できません。


更新クエリーを使って更新します。
A,B,CのどれかがNullの場合は、Dに値が入らないので、
nz関数を使って、Nullの場合は0が入るようにします。
D=Nz(A,0)+Nz(B,0)+Nz(C,0)ですね。
自動的にDのフィールドを埋めたいのなら、フォーム等でA,B,Cの入力がされたときに、Dのフィールドを更新するコードを記述するのが常套手段です。
A,B,Cの更新後プロシージャに記述するか、ボタンコントロールを作り、ボタンのクリック時プロシージャに記述します。
単に、D=Nz(A,0)+Nz(B,0)+Nz(C,0) で終わりです。
    • good
    • 0
この回答へのお礼

有り難うございます。これで一つ問題が解決できそうです。早速記述してみます。
ホントに有り難うございました。

お礼日時:2004/12/28 20:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す