- ベストアンサー
10歳単位での GROUP BY
ACCESS2000を使用しています。 従業員データというテーブルの情報を元に、年代別(10歳ごと)の円グラフを作成したいと思っています。 (・20~29歳・30~39歳・40~49歳・50歳以上) どのようにSQL文を書けばいいのでしょうか。 よろしくお願いいたします。 ※今回のテーブルには生年月日ではなく、年齢の数字が直接入っています。 もし生年月日から作成するにはBETWEEN関数と組合せればいいのでしょうか? 2つも質問してすいません。
- みんなの回答 (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 年代; 生年月日の求め方は、下の方のを参照してみてください。
その他の回答 (1)
- ken1-skillup
- ベストアンサー率33% (135/409)
アクセス2002で試してます。 まぁ私はSQLはわかりませんが笑 年代別のわけ方だけでもと思いまして・・・ 年代の計算は年齢を10で割ってINT関数で整数部分を抜き出し10倍すれば年代になります。 生年月日から求める場合は =int(int(DateDiff("d",[生年月日]-1,Date())/365.25)/10)*10 となります。 これを元にグラフを作成すればできるようなきがしますが・・・参考になればいいです
補足
早速の回答ありがとうございます。 INTで処理する方法ですと、 ・20~29歳・30~39歳・40~49歳はいいのですが、 ・50歳以上というグループが出来ません。 50歳以上は人数が少ないのでグループ化させたいのです。 INTの応用で出来るかと思ったのですが方法が浮かびませんでした。
お礼
お礼が遅くない申し訳ありませんでした。 うまくいきました。 ありがとうございました。