Access两个表格之间怎么加减,求赐教
1个回答
展开全部
如果两表的关联记录属于属于一对一(唯一对唯一)的情况,那么对应的字段直接加减就可以了。例如
select a.id,(nz(a.数量,0)-nz(b.数量,0)) as ab差量 from a,b where a.id=b.id;
select a.id,(nz(a.数量,0)+nz(b.数量,0)) as ab和量 from a,b where a.id=b.id;
说明:上述语句如果a、b两表的数量字段不存空值的情况下nz()函数可以不使用
如果两表的关联记录属于属于一对多或多对多的情况,那么就需要先将多方的记录汇总成一条记录,然后再进行一对一互相加减。另外还可以先将a、b两表的记录联合起来,再用关联字段进行分组汇总从而实现两表之间的数据加减。
这里需要提醒一点,涉及多表间的数据汇总,往往需要实施表间连接,但是由于多表连接的笛卡尔输出规则会导致检索出来的行数多于实际数据表存储的记录,直接汇总的话统计出来的数据就会不正确,因此我们在设计SQL语句时要特别小心避开这个因素的影响以便得到正确的汇总数据。
具体的实现方案,视数据结构与两表数据相加减的算法需求的不同会有非常多的变化,需要考虑的问题也很多,这里很难一一讲清楚。
select a.id,(nz(a.数量,0)-nz(b.数量,0)) as ab差量 from a,b where a.id=b.id;
select a.id,(nz(a.数量,0)+nz(b.数量,0)) as ab和量 from a,b where a.id=b.id;
说明:上述语句如果a、b两表的数量字段不存空值的情况下nz()函数可以不使用
如果两表的关联记录属于属于一对多或多对多的情况,那么就需要先将多方的记录汇总成一条记录,然后再进行一对一互相加减。另外还可以先将a、b两表的记录联合起来,再用关联字段进行分组汇总从而实现两表之间的数据加减。
这里需要提醒一点,涉及多表间的数据汇总,往往需要实施表间连接,但是由于多表连接的笛卡尔输出规则会导致检索出来的行数多于实际数据表存储的记录,直接汇总的话统计出来的数据就会不正确,因此我们在设计SQL语句时要特别小心避开这个因素的影响以便得到正确的汇总数据。
具体的实现方案,视数据结构与两表数据相加减的算法需求的不同会有非常多的变化,需要考虑的问题也很多,这里很难一一讲清楚。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询