![]() |
#2
风吹过b2021-04-22 20:29
SELECT 查询1.*, variation_3.测试值 as 测试值3 ,(查询1.测试值 - variation_3.测试值) as 差值3
FROM (SELECT variation.*, variation_2.测试值 AS 测试值2,(variation_2.测试值-variation.测试值) as 差值2 FROM variation LEFT JOIN variation_2 ON (variation.管芯编号 = variation_2.管芯编号) AND (variation.测试组别 = variation_2.测试组别) AND (variation.测试项目 = variation_2.测试项目) AND (variation.管脚号 = variation_2.管脚号) AND (variation.单位 = variation_2.单位)) as 查询1 LEFT JOIN variation_3 on (查询1.管芯编号 = variation_3.管芯编号) AND (查询1.测试组别 = variation_3.测试组别) AND (查询1.测试项目 = variation_3.测试项目) AND (查询1.管脚号 = variation_3.管脚号) AND (查询1.单位 = variation_3.单位); ----------------粗解释------------------ SELECT 查询1.* 显示查询1的所有字段 variation_3.测试值 as 测试值3 ,(查询1.测试值 - variation_3.测试值) as 差值3 3表指定字段的运算字段,给别名 FROM 指定表 (SELECT variation.*, variation_2.测试值 AS 测试值2,(variation_2.测试值-variation.测试值) as 差值2 FROM variation LEFT JOIN variation_2 ON (variation.管芯编号 = variation_2.管芯编号) AND (variation.测试组别 = variation_2.测试组别) AND (variation.测试项目 = variation_2.测试项目) AND (variation.管脚号 = variation_2.管脚号) AND (variation.单位 = variation_2.单位)) as 查询1 生成查询1 临时表,使用的左连接查询 这里也是一个查询 命令。 LEFT JOIN variation_3 on (查询1.管芯编号 = variation_3.管芯编号) AND (查询1.测试组别 = variation_3.测试组别) AND (查询1.测试项目 = variation_3.测试项目) AND (查询1.管脚号 = variation_3.管脚号) AND (查询1.单位 = variation_3.单位); 查询表1与3表左连接查询的限制条件。 -------------------- 认为太短的话,还可以不用星号 这是SQL命令,直接生成一个临时的表4,不保存数据。如果程序里使用,可以直接查询生成一个 表,然后对表进行访问。 命令在 ACCESS 2019 中测试通过。 |
具体操作如下:
1、 将表1(表名为variation)原封不动的复制到表4(表名为variation_4),即图中表1蓝色框里的内容全部复制到表4蓝色框里;
2、 将表2(表名为variation_2)里的每一条记录在和表4里每一条的前9栏进行比对,如果《管芯编号》、《测试组别》、《测试项目》、《管脚号》、《测试值下限》、《测试值上限》、《单位》完全一致的话,将表2里的《测试值》填写到表4对应条目的《测试值-2》位置, 并且计算《测试值》和《测试值-2》之间的差值(《测试值》-《测试值-2》),得出的差值填写到表4的《差值-2》栏中;
3、 (类似上一条),将表3(表名为variation_3)里的每一条记录在和表4里每一条的前9栏进行比对,如果《管芯编号》、《测试组别》、《测试项目》、《管脚号》、《测试值下限》、《测试值上限》、《单位》完全一致的话,将表3里的《测试值》填写到表4对应条目的《测试值-3》位置, 并且计算《测试值》和《测试值-3》之间的差值(《测试值》-《测试值-3》),得出的差值填写到表4的《差值-3》栏中;
4、 如果表2为空、表3不为空的话,仅进行第1、3步;如果表2不为空、表3为空的话,仅进行第1、2步;
5、 如果表2或表3的每一条在进行与表4的每一条的前9栏进行比对,没有匹配的话,则进行下一条的比对,不需要做出提示。
敬请路过的大神和版主告知这段语句如何撰写,在这里先行拜谢。
另外,曾经出现过表1、表2、表3各有400万条以上的数据的极限情况,那个时候variation.mdb文件已经达到1.3G左右,麻烦在编写这段程序时要考虑比对效率问题。
多谢多谢。
只有本站会员才能查看附件,请 登录
只有本站会员才能查看附件,请 登录