ACCESS 按一列数据值为条件,生成一列,按条件匹配取另外两张表中值。
现在有多张表,有一张为主表A,需要按A中一列的取值不同,匹配另外两张表中相同属性的值,求语句。示例如下:比如表A,时间、ID、地域名称、经手人四个关键字,表B为地域名称、...
现在有多张表,有一张为主表A,需要按A中一列的取值不同,匹配另外两张表中相同属性的值,求语句。示例如下:比如表A,时间、ID、地域名称、经手人四个关键字,表B为 地域名称、地域特点 表C为 ID、地域特点。现在想要匹配一个新表, 时间、ID、地域名称、经手人、地域特点,在2018年以前取表B的地域特点值,2018年以后,取表C的地域特点值
展开
1个回答
展开全部
题主的需求可以通过运行下列SQL选择查询语句高效解决:
select A.*,B.地域特点 from
A left join B on A.地域名称=B.地域名称
where A.时间<#2018-01-01#
union all
select A.*,C.地域特点 from
A left join C on A.ID=C.ID
where A.时间>=#2018-01-01#;
说明:
1) access无法识别无年月日间隔符的日期格式,上述语句适用于“时间“字段设置为"日期/时间"数据类型的数据表;
2) 上述语句假设B表的地域名称是唯一的,C表的ID也是唯一的;
3) 如果无法满足上述两条请告知,我可以再调整语句写法,但是这样一来,运行效率会低一些。
select A.*,B.地域特点 from
A left join B on A.地域名称=B.地域名称
where A.时间<#2018-01-01#
union all
select A.*,C.地域特点 from
A left join C on A.ID=C.ID
where A.时间>=#2018-01-01#;
说明:
1) access无法识别无年月日间隔符的日期格式,上述语句适用于“时间“字段设置为"日期/时间"数据类型的数据表;
2) 上述语句假设B表的地域名称是唯一的,C表的ID也是唯一的;
3) 如果无法满足上述两条请告知,我可以再调整语句写法,但是这样一来,运行效率会低一些。
更多追问追答
追答
错误提示您引用了不存在的数据库对象,初步判断,肯定写错了什么,不是表名不对,就是字段名不对。请贴出出您的sql语句和相关的表结构,我帮您分析一下
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询