一个查询问题,多谢了!

lzuyh 2012-11-05 10:57:45
表1结构
xh dwmc zgbm(主管部门)
1 单位1 A
2 单位2 A
3 单位3 B
4 单位4 B
5 单位5 B
6 单位6 C
表2
dwmc je
单位1 1
单位2 2
单位3 3
单位4 4
单位5 5
单位6 6

想要这种结果,并插入数据库中
mc je
A 3
单位1 1
单位2 2
B 11
单位3 3
单位4 4
单位5 5
c 6
单位6 6
...全文
225 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
-Tracy-McGrady- 2012-11-07
  • 打赏
  • 举报
回复
客气了客气了
坚_持 2012-11-06
  • 打赏
  • 举报
回复
坚_持 2012-11-06
  • 打赏
  • 举报
回复
快溜 2012-11-05
  • 打赏
  • 举报
回复
if object_id('[A]') is not null 
drop table [A]
go 
create table [A]([xh] int,[dwmc] nvarchar(5),[zgbm] varchar(1))
insert [A]
select 1,N'单位1','A' union all
select 2,N'单位2','A' union all
select 3,N'单位3','B' union all
select 4,N'单位4','B' union all
select 5,N'单位5','B' union all
select 6,N'单位6','C'--> 测试数据:[B]
if object_id('[B]') is not null 
drop table [B]
go 
create table [B]([dwmc] nvarchar(5),[je] int)
insert [B]
select N'单位1',1 union all
select N'单位2',2 union all
select N'单位3',3 union all
select N'单位4',4 union all
select N'单位5',5 union all
select N'单位6',6
go

select mc,je from 
 (select a.zgbm as mc,sum(b.je) as je,1 as no,a.zgbm 
     from A a join B b on a.dwmc=b.dwmc group by zgbm
 union all
  select b.dwmc,b.je,2,a.zgbm 
    from A a join B b on a.dwmc=b.dwmc) t
 order by zgbm,no 
 
 /*
 mc    je
----- -----------
A     3
单位1   1
单位2   2
B     12
单位3   3
单位4   4
单位5   5
C     6
单位6   6
快溜 2012-11-05
  • 打赏
  • 举报
回复
select mc,je from (select a.zgbm as mc,sum(b.je) as je,1 as no,a.zgbm from 表1 a join 表2 b where a.dwmc=b.dwmc group by zgbm union all select b.dwmc,b.je,2,a.zgbm from 表1 a join 表2 b where a.dwmc=b.dwmc) order by zgbm,no
  • 打赏
  • 举报
回复

----------------------------------------------------------------
-- Author  :TravyLee
-- Date    :2012-11-05 11:03:23
-- Version:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
--	Jul  9 2008 14:43:34 
--	Copyright (c) 1988-2008 Microsoft Corporation
--	Developer Edition on Windows NT 6.1 <X86> (Build 7600: )
--
----------------------------------------------------------------
--> 测试数据:[A]
if object_id('[A]') is not null drop table [A]
go 
create table [A]([xh] int,[dwmc] varchar(5),[zgbm] varchar(1))
insert [A]
select 1,'单位1','A' union all
select 2,'单位2','A' union all
select 3,'单位3','B' union all
select 4,'单位4','B' union all
select 5,'单位5','B' union all
select 6,'单位6','C'
--> 测试数据:[B]
if object_id('[B]') is not null drop table [B]
go 
create table [B]([dwmc] varchar(5),[je] int)
insert [B]
select '单位1',1 union all
select '单位2',2 union all
select '单位3',3 union all
select '单位4',4 union all
select '单位5',5 union all
select '单位6',6
go
with
t as(
select
	A.dwmc,
	A.zgbm,
	B.je
from
	A 
inner join
	B 
on
	A.dwmc=B.dwmc
)
select 
	 zgbm,
	 SUM(je) as je
from
	t
group by
	zgbm
union all
select
	dwmc,
	je
from
	t
/*
zgbm  je
----- -----------
A     3
B     12
C     6
单位1   1
单位2   2
单位3   3
单位4   4
单位5   5
单位6   6

(9 行受影响)


*/
极品老土豆 2012-11-05
  • 打赏
  • 举报
回复

if(object_id('a') is not null) drop table a
go
create table a
(
xh int,
dwmc varchar(20),
zgbm varchar(1)
)
go
insert into a
select 1,'单位1','A' union all
select 2,'单位2','A' union all
select 3,'单位3','B' union all
select 4,'单位4','B' union all
select 5,'单位5','B' union all
select 6,'单位6','C'
go
if(object_id('b') is  not null) drop table b
go
create table b
(
dwmc varchar(50),
je int
)
go
insert into b
select '单位1',1 union all
select '单位2',2 union all
select '单位3',3 union all
select '单位4',4 union all
select '单位5',5 union all
select '单位6',6 


select a.zgbm as mc,sum(b.je)as je from a inner join b on a.dwmc = b.dwmc group by a.zgbm
union all
select a.dwmc as mc,je from a inner join b on a.dwmc = b.dwmc 

/*
mc                   je
-------------------- -----------
A                    3
B                    12
C                    6
单位1                  1
单位2                  2
单位3                  3
单位4                  4
单位5                  5
单位6                  6

(9 行受影响)

*/
  • 打赏
  • 举报
回复
with cte as
(
select dwmc=case when grouping(dwmc)=1 then  zgbm else dwmc end,je=sum(je)
from (select zgbm,a.dwmc,je
      from a join b on a.dwmc=b.dwmc)K
group by zgbm,dwmc
with rollup
)
select * from cte where dwmc is not null
SQL2012软件简介 SQL查询器流传着很多软件,但相信此软件会有它的特别之处,本软件是经多名工程师测试。功能以及效率是有见证。本软件体积优势非常轻巧功能强大,1.4M的大小携带方便。如有建议请发邮件到75934092@qq.com,谢谢你的宝贵建议。话不多说,请看以下功能介绍! 特色功能: (一) 线程查询数据,可看查询结果完成的进度。 (二) 语句编辑强大的语法自动填充功能,可快速填充表或字段 (三) EXCEL导出后台完成。可选中语句导出EXCEL内容! V1.0.0.138 本版本调整了: 1. 汇总后,表头分组统计选择字段显示不正常 2. 汇总后,复制列名时复制不正常 3. 拖动语句编辑时,字体错位的问题 4. TOP查询时,进度不正确 5. 关联查询行数错误的问题 6. 数据库选项的排序问题 7. 临时记录的打开按钮位置 新增功能: 1. 界面大量调整把所有右击出来的菜单都显示在对应的功能位置上,操作上来更新顺手 2. 高级查询的窗口全部显示置前,整理排序窗口 3. 主查询窗口的求和功能和排序功能 4. 高级查询加入,可筛选,可分组统计。可汇总 5. 语句编辑框中直接导出查询结果到EXCEL 一、主功能概述 1.shift+空格 内容自动填充 2.预计表总记录数 3.预计表前N行记录 4.生成表字段以豆号分割 字段1,字段2.... 可自定义换行数量 5.显示表的详细信息,字段长度。可直接在查询结果中显示。 6.对查询内容导出EXCEL,高级结果可快速导出。后台处理不会卡程序。在导出大量的数据时可以操作其他操作。软件在导出完成后会检查EXCEL的行数完整性。可以EXCEL信息中查阅。 7.高级结果可拖放分组统计内容 8.对查询结果生成插入语句。可方便夸平台的数据插入 9.查询结果中快速定位查找内容字段位置,可模糊查找 10.可执行存储过程。执行过程中会在对应的GO中报错。可以得知是那行的错误 11.ctrl+1~5 的快捷语句记录。在使用过程中可以按对应的快捷键,在语句编号窗口中插入。临时代码记录10条。可方便用户临时记录编号语句。 12.直接对内容生成IN语句方便查询。 13.快速查询数据库中的表信息,快速查询对应的的字段,可直接筛选想要的字段内容。此功能可让使用者快速知道对应的字段类型! 14.可直接对字段列表的字段进行操作。插入,修改,删除!! 15.查询结果可以直接显示数据库的二进制图片内容 16.排量更新后台,此功能可以对当你手上有大量后台的时候不需要一个个去打开执行,只需要插入到软件的批量更新窗口中执行。执行成功会OK,编辑后再执行,直到全部OK。Ok过的不需重量执行放心! 17.文件传送。可以利用这软件传送文件。如果两个软件连到同一个SQL服务器上。此两个电脑可以互传文件了! 18.EXCEL导入数据库。可以把对应的EXCEL导入到数据库中。EXCEL头为列名。表名定义 19.远程复制,粘贴文件! 20.SQL中实用的语句帮助文档! 二、辅助功能 1.对IP或域名进行端口测试 2.获取当前外网IP地址 3.直接远程连接当前连接IP 4.网整测试当前连接的情况 注:本软件使用次数为10次,因本软件需要大家的建议。功能还在继续完善中,所以免费取得注册码!需要请发邮件或加QQ联系作者。多谢大家的支持! 联系方式:75934092@qq.com 或可直接加QQ:75934092 510567321
整合FileDisk和Filemon的MFC开源码,希望对新手有帮助! 说明:对大侠们可能没什么价值,仅以此献给像我一样的菜鸟! 软件环境和框架: 1.软件环境:VS.net2003 + XP IFS + DS3.2 2.框架:采用MFC框架; 功能: 1.自动加载FileDisk和Filemon的驱动程序部分; 2.用FileDisk生成一个虚拟硬盘,并自动分配盘符; 3.对新生成的虚拟盘符挂接Filemon的过滤驱动; 4.退出时自动卸载FileDisk和Filemon驱动; 不完善的地方(有兴趣的朋友可以完善下,并希望完善后请在我这里跟帖上传源码,就算是对我开源的支持,谢谢!): 1.FileDisk生成的虚拟硬盘需要先手动在资源管理器里进行格式化;可以在程序里调用SHFormat之类的启动格式化窗口进行改善,也可以使用第三方提供的格式化函数进行格式化; 2.Filemon目前是应用程序使用按照时间来进行查询的过滤方式,希望能改成驱动程序主动通知应用程序。 ------- 整理后面的回贴后追加的内容 ---------------- 1.在BOOL CMainFrame::Init(void)函数里有段网络通讯的代码,里面访问了我自己建的局域网服务器,大家那里应该是没有的,所以会报错,不好意思!注释或删掉以下内容就好了! CWebWrapper clsWebWrapper; CHttpDataPackage_Receive HttpData_Receive; //Call server function if (clsWebWrapper.PostCommand( _T(""), _T("abcd我你他"), &HttpData_Receive, _T("WebGrab"), this, FALSE, FALSE)) //if (clsWebWrapper.GetCommand( _T(""), _T("abcd我你他"), &HttpData_Receive, // _T("WebGrab"), this, FALSE, FALSE)) { AfxMessageBox(HttpData_Receive.GetContent_DataAll()); } else { AfxMessageBox("网络通讯失败"); return FALSE; } 2.大家如果想看文件过滤出来的信息,可以在BOOL CMainFrame::Init(void)函数里去掉对这句话//m_nTimer = SetTimer( 1, 500/*ms*/, NULL );的注释,那就相当于启动了定时器,然后会有信息显示在子窗口里,,当然我并没有去实现子窗口的滚动,所以子窗口里的内容满了后,就看不到最新的信息了,,哈哈,,我实在是没时间啊,,公司里的项目这2天在出演示版呢,,,忙啊。。。。大家自己加加代码哈,,,这也是个不完善的地方,希望完善了的朋友,,上传下代码啊,,,多谢! 3.另外,请下载使用了的朋友,有空的话来帮忙说下使用上有没有问题啊,如果有问题,我好及时做修改啊,谢谢了!如果可以用的话,有空就帮忙回个贴,说可以用,这样别的朋友就知道这个代码是可以用的,免得大家还以为下了个不能用的东东,那不是郁闷死了!先谢谢了! ------------- 最新补充说明 ------------------- 1.FileDisk和Filemon我用的都是比较老的版本了,FileDisk是2004年的,Filemon是4.34 ;FileDisk的作者在其网站上已经出了新版本了,是2006年的,我下载了,还没时间看过,所以大家有空也可以整合2006的驱动来替换我的老版本,毕竟老版本是可能有些不完善的地方的;而Filemon则没有再继续开放源码,,所以如果有朋友有幸获得了新版本的源码,能不能上传个,,多谢了! 2.Filemon.exe会自动在其目录下创建File.img文件做为虚拟磁盘使用的文件,大家只要手动格式化一次创建出来的虚拟磁盘,以后就不用再格式化,可以不断使用了,所以以后大家要是做成产品的话,可以直接把已经格式化好的对应的File.img文件一起打包到安装包里,呵呵! 3.我放弃了FileDisk中对CDROM部分的支持,以及Filemon中对Win9x的VxD驱动的支持,如果有朋友需要的话,可以自行添加!

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧