新技能|access在数据处理中的应用
新技能|access在数据处理中的应用
这几天在做医用耗材的使用分析,需要用到很多excel表格并把几个表格的数据互相匹配,之前学过vlookup功能,但每次用的都不是很顺利且功能有些局限。一个同事说用access啊,很好用。用完之后想大呼:真特么救星!
下面讲一下access中SQL语句的应用,基于我的应用,仅讲述一下内联接、外联接(左联接、右联接、全联接)。拿二个表格做示例:
表A
表B
ID
批次
生产日期
有效期
数量
NAME
采购人
入库时间
234
838
2018/3/1
2020/1/1
7
234
小李
2018/3/3
376
345
2018/3/3
2020/1/3
5
376
小李
2018/3/5
48
837
2018/3/7
2020/1/7
7
48
小李
2018/3/9
一、内联接
定义:查询结果仅显示二个表格中相匹配的行。
SQL语句:SELECT A.*,B.* FROM A INNER JOIN B ON A.ID=B.NAME
返回内容:
二、外联接
1、左联接
定义:查询结果显示左表的全部行及右表的匹配行。如果左表的某行在右表中没有匹配行,则在查询结果中左表的行对应的右表为空值。
SQL语句:SELECT A.*,B.* FROM A LEFT JOIN B ON A.ID=B.NAME
返回内容:
ID
批次
生产日期
有效期
数量
NAME
采购人
入库时间
234
838
2018/3/1
2020/1/1
7
234
小李
2018/3/3
123
434
2018/3/2
2020/1/2
3
376
345
2018/3/3
2020/1/3
5
376
小李
2018/3/5
987
746
2018/3/4
2020/1/4
5
376
837
2018/3/5
2020/1/5
67
948
756
2018/3/6
2020/1/6
7
48
837
2018/3/7
2020/1/7
7
48
小李
2018/3/9
2、右联接
定义:查询结果显示右表的全部行及左表的匹配行。如果左表的某行在右表中没有匹配行,则在查询结果中右表的行对应的左表为空值。
SQL语句:SELECT A.*,B.* FROM A RIGHT JOIN B ON A.ID=B.NAME
返回内容:
ID
批次
生产日期
有效期
数量
NAME
采购人
入库时间
234
838
2018/3/1
2020/1/1
7
234
小李
2018/3/3
564
小李
2018/3/4
376
345
2018/3/3
2020/1/3
5
376
小李
2018/3/5
5
879
小李
2018/3/6
67
908
小李
2018/3/7
7
362
小李
2018/3/8
48
837
2018/3/7
2020/1/7
7
48
小李
2018/3/9
3、全联接
定义:查询结果中显示左表和右表的全部行。左表、右表中无法匹配的行分别以空值列出。
SQL语句:SELECT A.*,B.* FROM A FULL JOIN B ON A.ID=B.NAME
返回内容:
ID
批次
生产日期
有效期
数量
NAME
采购人
入库时间
234
838
2018/3/1
2020/1/1
7
234
小李
2018/3/3
123
434
2018/3/2
2020/1/2
3
376
345
2018/3/3
2020/1/3
5
376
小李
2018/3/5
987
746
2018/3/4
2020/1/4
5
376
837
2018/3/5
2020/1/5
67
948
756
2018/3/6
2020/1/6
7
48
837
2018/3/7
2020/1/7
7
48
小李
2018/3/9
564
小李
2018/3/4
879
小李
2018/3/6
908
小李
2018/3/7
362
小李
2018/3/8