sql实现从两个表获取字段组成表数据再插入到函数表中
来源:互联网 发布:网络共享文件夹打不开 编辑:程序博客网 时间:2024/05/20 17:06
实现此效果说起来比较难以说明,我这里还是先将实现的效果已图的形式展示一下吧。
这是两个表的设计。我想实现的效果举个例子,以查询secretaryCharge为例:
点击“市级”,我将查询到市级一下所有“区级”的secretaryCharge数目,并通过organizations中的fullName来作为名字,查到的统计数目作为值。得到的效果便是如下图所示:
具体实现sql语句就是用到join on,sql语句具体如下:
insert @result(fullName,paramer)(select fullName,villageCharge from (select fullName,orgID from organizations where parent=@orgId) as orgInfojoin(select DJCharge.parentOrg as parent ,sum(villageCharge) as villageChargefrom DJCharge,organizations where year=@year and DJCharge.orgID=organizations.orgID and DJCharge.parentOrg in(select distinct orgID from organizations where parent=@orgID)group by DJCharge.parentOrg) as DJChargeInfoon orgInfo.orgID=DJChargeInfo.parent )
这里我省略了定义、声明等过程,此段代码是begin-end块中的。用了groupby,不用的话则会统计总数,而不能将子查询分开统计。
如果需要统计一个表中的多个字段统计数,join-on还可以继续使用,代码例子如下所示:
insert @result (regionFullName,countmale,countfemale)( select fullName,countmale,countfemale from (select fullName,orgID from organizations where parent=@orgID) as orgInfofull join(select count(*) as countmale,SUBSTRING(parentOrg,2,6) AS parent from partyMembers where sex='男' and substring(parentOrg ,2,6)in( select substring(orgID,2,6) AS validOrgID From organizations where parent=@orgID) group by substring(parentOrg,2,6))as Maleon substring(orgInfo.orgID,2,6)=Male.parent full join(select count(*) as countfemale,substring(parentOrg,2,6)AS parent from partyMembers where sex='女' and substring(parentOrg ,2,6)in( select substring(orgID,2,6) AS validOrgID From organizations where parent=@orgID) group by substring(parentOrg,2,6))as Femaleon substring(orgInfo.orgID,2,6)=Female.parent )
这里我用了full join全连接,目的是在显示时只要组成的表中有一个字段有值,这一行都得到。查询效果如下:
如果不使用全连接可能会产生多余两行结果。
1 0
- sql实现从两个表获取字段组成表数据再插入到函数表中
- 使用OPENDATASOURCE 函数,在查询中实现从ACCESS获取数据,并插入SQLSERVER2000表中
- 从表counter中读取数据字段car,然后全部插入到表counterss!!
- sql函数实现从字段字符串中获取数字
- 把两个数据库中的两个表中,相同的字段的数据,从一个表复制到另一个表
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- hive从查询中获取数据插入到表或动态分区
- 从一个表中读取的数据插入到另外一张表中的sql语句
- Sql 从一张表查询数据插入到另外一张表中
- 【Sql Server】使用触发器把一个表中满足条件的数据部分字段插入到另一个表中
- 代码实现从某个表中查询数据插入到另一个表中
- mysql 同一表中.两个字段值互相复制,从一个字段值复制到另一个
- 从表中插入数据到另外一张表
- sql存储过程
- Handler 机制学习之基本用法
- 为html表格添加双击事件,并获取<td>节点的值
- java中Map,List与Set的区别(一)
- LeetCode之Best Time to Buy and Sell Stock II
- sql实现从两个表获取字段组成表数据再插入到函数表中
- x5studio的常用操作
- Git简单介绍(一)
- 科研日报 20150831 FFT ETHERNET
- leetcode 238: Product of Array Except Self
- 【JS】测试:HTML页面引入另一个HTML页面,同名ID会冲突吗
- poj 1442.Black Box
- iOS --- 使用GPUImage实现的简单滤镜效果
- 哲学家吃饭问题 代码实现如何 避免线程死锁