我还在处理一个数据库项目,而且我碰到了一块墙,我试图做某事(可能没有进展),但我很难过!我有两张桌子,我试图加入,ADL和TENANTS。在TENANTS中,我需要以下数据:TenantID(PK)(自动号码),TenantDateOfBirth(日期)。
来自ADL我需要:ADLID(PK)(自动号码),TenantID(FK)ADLDate(日期),吃(文本选择限制为独立或有困难),洗澡(独立或有困难) ,修饰(独立或有困难),穿着(独立或有困难)和转移(独立或有困难)。
我需要的是4个单独的查询。
查询所有18-61岁的租户。 - 非长者
查询所有拥有4个字段的62岁以上的租户为"独立。" - *老人
查询所有年龄在62岁以上且有1-2个字段的租户为“#34;难度很高。”#34; - 风险长者
查询所有拥有3个以上字段的62岁以上的租户为"难以接受。" - Frail Elders
答案 0 :(得分:1)
在PK / FK字段上连接表并计算一些字段。
使用DateDiff("yyyy",TenantDateOfBirth,Date())
计算年龄。计算将围绕全年。对于年份的一小部分,请尝试DateDiff("m", TenantDateOfBirth, Date()) / 12
,该数字为一个月。或者考虑使用UDF。有很多例子 - 开始calculating age in years and months in Microsoft Access (2010)和http://www.blueclaw-db.com/vb_age_calculation.htm
或者来自shawnt00评论的建议可能会令人满意:
DateDiff("year", TenantDateOfBirth, Date()) - IIf(DatePart("y", Date()) < DatePart("y", TenantDateOfBirth), 1, 0)
计算难度系数:
IIf(Eating="Has Difficulty",1,0) + IIf(Bathing="Has Difficulty",1,0) + IIf(Grooming="Has Difficulty",1,0) + IIf(Dressing="Has Difficulty",1,0) + IIf(Transferring="Has Difficulty",1,0) AS DiffLevel
将过滤条件应用于计算字段<62
或>61
以及=0
或<3
或>2
- 以任何合适的组合形式。