- ベストアンサー
【Access】Dcountの利用方法
- AccessのDcount関数を利用してデータの集計を行う方法についてアドバイスを求めています。
- 具体的には、特定の条件に基づいてデータを集計し、表形式で表示する方法に関して詰まってしまっている状況です。
- また、レベル3のフィールドが増える可能性があるため、柔軟な対応方法を知りたいと考えています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これはDCountを使わずクロス集計でしょう レベル1~3を行見出し 程度を列 に指定してレコードをカウントすれば目的のものが得られますよ
その他の回答 (2)
- hotosys
- ベストアンサー率67% (97/143)
Dcountは使わないけど SELECT レベル1, レベル2, レベル3, Sum(IIf([程度]="低",1,0)) AS 低, Sum(IIf([程度]="中",1,0)) AS 中, Sum(IIf([程度]="高",1,0)) AS 高 FROM テーブルA GROUP BY レベル1, レベル2, レベル3 では?
お礼
ありがとうございます。 これはクエリのSQLですか? 新規クエリに張ってみましたが、 クエリ式 'レベル3 FROM テーブルA'の構文エラー : 演算子がありません。 とでて表示できません。 SQLを理解できていないので何所がおかしいのか分かりません><
補足
最後のレベル3のあとに;をつけたらエラーメッセージが代わりました。 SQL ステートメントの後に文字が見つかりました。 う~ん・・・メッセージの意味すらわからなくなってきました><。。
少なくともクエリ内にマジックナンバーを埋め込むのはご法度。 マジックナンバーとは、いわゆる固定値です。 こういうことをやると、項目を追加する都度に手直しが必要に。 つまり、何時までたっても開発者から手離れしない最悪のシステムが出来上がります。 テーブルX ID・・・・・・1,2・・・・N 区分・・・・1,2,3 並び順・・1,2・・・・N 項目名・・ミス,トラブル 評価点・・1.0,1.5・・・・N.5 少なくとも、テーブルAはテーブルXを参照し[テーブルX.ID]を記憶するべきでしょう。 もちろん、その[評価点合計=程度]というのが成立する必要があるでしょうが・・・。 その成立の可否が不明な現時点では、マジックナンバーを埋め込むのはまずいとだけ・・・。
お礼
すみません昨夜レス下と思っていたのですが 送信しきれて居なかったようです。 レスが遅れて申し訳ありません。 基本的な考えに間違いがあるということは分かったのですが テーブルXから下のくだりがすぐに理解できませんで 実施することが出来ませんでした・・・ しばらく理解する時間を下さい><
お礼
ありがとうございます! 言われたとおりにしてみました レコード→IDにしてみましたが上手くいきました。 ありがとうございました!