- ベストアンサー
アクセスのクエリで出生時~小学校就学前を抽出
- アクセスのクエリで出生時~小学校就学前のデータを抽出する方法を教えてください。
- 抽出条件1では、出生時から小学校就学前(6歳に達した最初の3月31日まで)のデータを抽出します。
- 抽出条件2では、小学生から中学生(4月1日時点で6歳以上で、15歳に達した最初の3月31日まで)のデータを抽出します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
質問は >日付型で作成してなく、年齢の出し方も分かりません。 ということでよろしいでしょうか? まず、下記の列を追加します。これは生年月日をまとめて西暦になおしたものです。 生年月日:Format([年号] & [生年] & "年" & [月] & "月" & [日] & "日", "yyyy/mm/dd") 次に、下記の列を追加します。 これは、「年齢計算に関する法律」によって誕生日の前日に満年齢に達することになっているためで、学校教育法の第22条の就学の基準では「子女の満六才に達した日の翌日以降における最初の学年の初から」となっているためです。もし、この年齢ではなく、当日に満年齢になる計算をお望みの場合は、「Date()」だけに修正すればよいです。(基準日がわからないので、動かした当日にしています) 基準日:DateAdd("d",+1,Date()) 最後に、下記の列を追加します。 年齢:IIf(Format(生年月日,"mm/dd")>Format(基準日,"mm/dd"), DateDiff("yyyy",生年月日,基準日)-1, DateDiff("yyyy",生年月日,基準日)) 上記で年齢の出し方は大体分かるかと思います。 あとは年齢をもとに条件にあう列を追加していくことになるか、上記の年齢計算自体を修正するかになると思います。
その他の回答 (1)
- groovyrealityx
- ベストアンサー率33% (4/12)
内部で年齢を計算する関数つくると思います。僕なら。 その結果を比較する。 そういうことでいかがでしょう?
お礼
groovyrealityx 様 回答をありがとうございます。 解決しました。
補足
groovyrealityx 様 回答ありがとうございます。 日付型に変換の方法を調べたのですがわかりませんでした。 また、小学校就学前(6歳に達した最初の3月31日まで)なども分かりません。 よろしくお願い致します。
お礼
hogya 様 回答をありがとうございます。 下記で解決しました。 【抽出1】 SELECT * FROM 顧客 WHERE DateValue([年号] & [生年] & "/" & [月] & "/" & [日]) BETWEEN DateSerial(Year(Date()) -15, 4, 2) AND DateSerial(Year(Date()) -6, 4, 1); 【抽出2】 SELECT * FROM 顧客 WHERE DateValue([年号] & [生年] & "/" & [月] & "/" & [日]) > DateSerial(Year(Date()) -6, 4, 1); SELECT * FROM Q_患者マスターレセプトNEW吉野_南関町ダミー入力 WHERE DateValue([年号] & [生年] & "/" & [月] & "/" & [日]) BETWEEN DateSerial(Year(Date()) -15, 4, 2) AND DateSerial(Year(Date()) -6, 4, 1);