【功能测试技巧3】多表提数实践

1.表table_score结构如下:用来存储分数。

表table_no结构如下:用来存储相关合同号、签约号、保单号。

表table_base结构如下:用来存储基础数据:

我们现在想要取到三个表中以table_base为基础,与table_score,table_no关联的数据。

2.书写思路如下

(1)首先明确三个表中都有相同的字段apply_id、business_No

(2)其中business_NO与apply_id是一一对应的。

(3)其中table_base表中的一个apply_id对应表table_score中有多条记录。

3.写法如下

select a.apply_id,

    a.business_no,

b.apply_id,

b.app_no,

b.policy_no,

(select score from table_score c where a.apply_id=c.apply_id and c.score_resource=‘01‘),

(select score from table_score d where a.apply_id=d.apply_id and d.score_resource=‘02‘),

from   table_base a

left join table_no b on a.apply_id=b.apply_id;

说明如下:上述描述的写法需要注意以下问题:

(1)(select score from table_score c where a.apply_id=c.apply_id and c.score_resource=‘01‘)这里查询出来的也是一列元素;

(2)左连接左边的表必须只有一个,我们写的语句中是table_base;

(3)多个表中必须有一个相同的字段将三张表进行关联,否则无法实现多表查询的功能。

(4)写法上注意规律性:多个表一定运用别名。

select 后面就是写查询的字段

from后面就是跟的表名

如果有条件那么就用where和and等等条件语句。

时间: 2024-10-11 01:33:05

【功能测试技巧3】多表提数实践的相关文章

V7核心系统全表提数

核心系统提数 SELECT * FROM WEB_PLY_BASE A WHERE A.C_PLY_NO = '&plyno'; SELECT * FROM WEB_PLY_CVRG A WHERE A.C_PLY_NO = '&plyno'; SELECT * FROM WEB_PLY_APPLICANT A WHERE A.C_PLY_NO = '&plyno'; SELECT * FROM WEB_PLY_INSURED A WHERE A.C_PLY_NO = '&

Atitit.mssql 数据库表记录数and 表体积大小统计

Atitit.mssql 数据库表记录数and 表体积大小统计 1. EXEC   sp_MSforeachtable   "EXECUTE   sp_spaceused   '?'" 最后一种方法是利用隐藏未公开的系统存储过程sp_MSforeachtable CREATE TABLE  #temp  (TableName  VARCHAR  (255),  RowCnt  INT) EXEC  sp_MSforeachtable  'INSERT  INTO  #temp  SEL

MyBatis 用户表记录数查询

搭建MyBatis开发环境,实现用户表记录数查询 1.在MyEclipse中创建工程,导入MyBatis的jar包 2.创建MyBatis配置文件mybatis-config.xml配置数据库信息 mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0

MS SQL查询所有表行数,获取所有数据库名,表名,字段名

1.获取所有数据库名 --SELECT Name FROM Master..SysDatabases ORDER BY Name -- 2.获取所有表名: --SELECT Name NAMEtemp,* FROM TEST..SysObjects Where XType='U' ORDER BY Name --表名  ----XType='U':表示所有用户表; ----XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name FROM SysColumns WHER

1.Oracle表的DDL实践

1.Oracle表的DDL实践. 设有如下关系表S_班名座号(如:s_xg140101): s_ xg140101 (SNO, SNAME, SSEX, SAGE, SDEPT),主关键字是SNO. 其中SNO为学号,NUMBER(5),学号不能为空,值是惟一的:SNAME为姓名,VARCHAR2(20):SSEX为性别,char(2):SAGE为年龄,NUMBER(2):SDEPT为所在系名,VARCHAR2(10).写出实现下列功能的SQL语句. 1.1 创建此表并插入数据: Create

Oracle创建新undo表空间最佳实践(包含段检查)

在处理一则ORA-600 [4194]案例时,参考MOS文档:Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ID 1428786.1) 1.对于ORA 600[4194]的解释 2.创建新undo表空间最佳实践(包含段检查) 1.对于ORA 600[4194]的解释: The following error is occurring in the alert.log right before the da

navicat查看mysql数据表记录数不断变化

在使用navicat进行数据库管理的时候,在查看表对象的时候会发现,每次刷新,数据表的记录数不断变化,尤其是大表. 对于100万的数据经常会显示九十几万,当然通过count(*)出来的数据是正确的. 非常疑惑,查了一下资料,原来和存储引擎有关.官方说明: The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB

oracle 查看表行数所占空间大小

最新数据库空间有感觉捉急了,上次,删了些数据空了800+G,撑了一个多月,现在还有400+G,每天10G的增量,多少空间也感觉不够用啊. 不能加硬盘,就只有删数据了.. 删数据,人懒,直接找表行最多,占空间最大的表删 于是就有了下面一段SQL: select ut.table_name,ut.OWNER,ut.tablespace_name,num_rows,us.BYTES from dba_tables ut,(select segment_name,sum(bytes)/1024/1024

SQL 从指定表筛选指定行信息 获取表行数

1.获取指定表的行数 --获取表中数据行数 --select max([列名]) from 表名 2.筛选指定表的指定行数据(数据表分页获取) http://www.cnblogs.com/morningwang/archive/2009/01/02/1367277.html