• ベストアンサー

10歳単位での GROUP BY

ACCESS2000を使用しています。 従業員データというテーブルの情報を元に、年代別(10歳ごと)の円グラフを作成したいと思っています。 (・20~29歳・30~39歳・40~49歳・50歳以上) どのようにSQL文を書けばいいのでしょうか。 よろしくお願いいたします。 ※今回のテーブルには生年月日ではなく、年齢の数字が直接入っています。 もし生年月日から作成するにはBETWEEN関数と組合せればいいのでしょうか? 2つも質問してすいません。

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

  • ベストアンサー
  • maro200
  • ベストアンサー率45% (15/33)
回答No.2

年代の計算は、年齢\10で求まります。 SQLの書き方もいくつかあると思いますが、 SELECT IIf(年齢\10>=5,5,年齢\10) AS 年代 FROM 従業員データ GROUP BY IIf(年齢>=5,5,年齢\10); もしくは、 select 年代 from (SELECT IIf(年齢\10>=5,5,年齢\10) AS 年代 FROM 従業員データ) GROUP BY 年代; 生年月日の求め方は、下の方のを参照してみてください。

amateur3
質問者

お礼

お礼が遅くない申し訳ありませんでした。 うまくいきました。 ありがとうございました。

その他の回答 (1)

回答No.1

アクセス2002で試してます。 まぁ私はSQLはわかりませんが笑 年代別のわけ方だけでもと思いまして・・・ 年代の計算は年齢を10で割ってINT関数で整数部分を抜き出し10倍すれば年代になります。 生年月日から求める場合は =int(int(DateDiff("d",[生年月日]-1,Date())/365.25)/10)*10 となります。 これを元にグラフを作成すればできるようなきがしますが・・・参考になればいいです

amateur3
質問者

補足

早速の回答ありがとうございます。 INTで処理する方法ですと、 ・20~29歳・30~39歳・40~49歳はいいのですが、 ・50歳以上というグループが出来ません。 50歳以上は人数が少ないのでグループ化させたいのです。 INTの応用で出来るかと思ったのですが方法が浮かびませんでした。

関連するQ&A