今天写泛微OA系统的流程表单,遇见了校验合同编号重复判断的问题。
其中需要写一个sql语句,把2个表中的具有够条件的合同编号的值都查出来,用count来计数,并且把两个sql查出的count相加,在同一条sql语句中实现,
select count(*)from HeTong1 where htbh='合同编码';
select count(*)from HeTong2 where htbh='合同编码';
//因为是两张具有相同字段的表,现在要把这两个神sql合并成一个sql,并求count的和;
合并后的代码:
select sum(a) from(
select count(*) a from uf_gjdt_HeTong where htbh = 'ANST-MYDR-DYZY1-20191206'
union all select count(*) a from formtable_main_119 where htbh='ANST-MYDR-DYZY1-20191206'
) dual;
这样就能把count的和求出来
如果有三个sql求和可以在加一个union all
如下
select sum(a) from (
select count(*) a from uf_gjdt_HeTong where htbh = 'ANST-MYDR-DYZY1-20191206'
union all select count(*) a from formtable_main_119 where htbh='ANST-MYDR-DYZY1-20191206'
union all select count(*) a from formtable_main_127 where htbh='ANST-MYDR-DYZY1-20191206'
) dual;
精简化套用如下:
select sum(a) from (
select count(*) a from 表1 where 条件
union all select count(*) a from 表2 where 条件
) dual;