| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:多个表求和问题
只看楼主 加入收藏
mailrml
Rank: 2
等 级:论坛游民
帖 子:19
专家分:12
注 册:2010-5-16
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:4 
多个表求和问题
现有sckq1001,sckq1002....sckq1012共12个表,表结构完全相同,都有部门编号,姓名,岗位,出勤,加班等字段。但每个表的记录数不相同,如sckq1001有100条记录,而sckq1002有110条记录,即每个月都有新的人员参与考勤,现要生成一个新表,有部门编号,姓名,1月出勤,2月出勤....12月出勤,以及合计全年出勤,如何实现。
搜索更多相关主题的帖子: 求和 
2010-08-13 14:40
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:5 
供参考
1、单表查1-12个月
sele 部门编号,姓名,sum(出勤) 出勤 from sckq1001 into table sckq1
sele 部门编号,姓名,sum(出勤) 出勤 from sckq1002 into table sckq2
......
sele 部门编号,姓名,sum(出勤) 出勤 from sckq1012 into table sckq12

2、合起来查全年
clos tabl
use sckq1001
appe from sckq1002
....
appe from sckq1012
sele 部门编号,姓名,sum(出勤) 出勤 from sckq1001 grou by 部门编号,姓名  into table sckq

3、最后全部合起来
clos tabl
use sckq1
appe from sckq2
....
appe from sckq12
appe from sckq
2010-08-13 16:04
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:5 

没有必要弄成12个表, 只要1个总表即可, 总表中增加1个字段"年月"~  然后, 无论你要查询什么, 一般只需一句代码即可实现~
2010-08-13 22:48
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:5 
*第一个表和第二个表连接
select nvl(a.部门编号,b.部门编号) as 部门编号,;
       nvl(a.姓名,b.姓名) as 姓名,;
       nvl(a.出勤,0) as 出勤01,;
       nvl(b.出勤,0) as 出勤02 ;
       from sckq001 a;
       full join sckq002 b ;
       on a.姓名=b.姓名 into cursor t12
*连接的新表和第三个表连接
select nvl(a.部门编号,b.部门编号) as 部门编号,;
       nvl(a.姓名,b.姓名) as 姓名,;
       nvl(a.出勤01,0) as 出勤01,;
       nvl(a.出勤02,0) as 出勤02,;
       nvl(b.出勤,0) as 出勤03 ;
       from t12 a;
       full join sckq003 b ;
       on a.姓名=b.姓名 into cursor t13
*连接的新表(1、2、3个表连接起来的)和第四个表连接
select nvl(a.部门编号,b.部门编号) as 部门编号,;
       nvl(a.姓名,b.姓名) as 姓名,;
       nvl(a.出勤01,0) as 出勤01,;
       nvl(a.出勤02,0) as 出勤02,;
       nvl(a.出勤03,0) as 出勤03,;
       nvl(b.出勤,0) as 出勤04 ;
       from t13 a;
       full join sckq004 b ;
       on a.姓名=b.姓名
....

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-08-15 20:27
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:5 
最后合计的计算是:
select *,出勤01+出勤02+出勤03+出勤04+...+出勤12 as 出勤合计 from t112

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2010-08-15 20:35
快速回复:多个表求和问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021650 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved