各位大侠:
现有两个表,表中的数据如下:Table_1: Employee
emp_name emp_type emp_memo
张三 Designer 设计员
李四 Designer 设计员
QC_1 QC 质检员
QC_2 QC 质检员
Table_2: Production
emp_name emp_production QC_name
张三 100 QC_2
张三 100 QC_1
李四 100 QC_2
张三 100 QC_2
李四 100 QC_2
现要求:不但要对张三和李四二人的产量(emp_production)进行分类汇总,而且同时也要对两个质检员
QC_1和QC_2的检查产量进行分类汇总,将两个汇总的结果融合在同一个表中,结果如下,请教大家这个要
求能否用一条SQL语句写完成它,该如何写?先谢谢了!emp_name emp_production
张三 300
李四 200
QC_1 100
QC_2 400
现有两个表,表中的数据如下:Table_1: Employee
emp_name emp_type emp_memo
张三 Designer 设计员
李四 Designer 设计员
QC_1 QC 质检员
QC_2 QC 质检员
Table_2: Production
emp_name emp_production QC_name
张三 100 QC_2
张三 100 QC_1
李四 100 QC_2
张三 100 QC_2
李四 100 QC_2
现要求:不但要对张三和李四二人的产量(emp_production)进行分类汇总,而且同时也要对两个质检员
QC_1和QC_2的检查产量进行分类汇总,将两个汇总的结果融合在同一个表中,结果如下,请教大家这个要
求能否用一条SQL语句写完成它,该如何写?先谢谢了!emp_name emp_production
张三 300
李四 200
QC_1 100
QC_2 400
解决方案 »
- 建立存储过程和Select 取值 。请问2种方法主要有什么区别啊。急。。。。。
- SQL连接数据库时,在服务器名一栏中输入一个点,为什么连接不进去
- 今天突然发现,sql中的注释符对 go 无效,[是:/* --- */而不是:--],大家都试试.
- *****哪位大侠帮我写一个函数,请进来看看吧!在线等。*****
- 请问如何选出一个标中某一字段有重复现象的记录?越简练越好!
- Access数据库连接时,控制面板的管理工具的系统DSN中没有 Driver do Microsoft Access
- 请教各位一个郁闷我多天的问题
- 建视图!(没人回吗??)
- 奇怪了,代理任务怎么启动不了?
- 有谁用过word的邮件合并功能。lujun,net_steven,icevi快帮忙。
- 给数据库的XSB添加取值约束 要求列名为zxf在0到160之间 这个约束怎么写啊 ?
- sql 数据做了表update 误操作 怎么能改回去
select a.emp_name,sum(b.emp_production) emp_production
from Employee a join Production b on a.emp_name = b.emp_name
group by a.emp_name
union all
select a.emp_name,sum(b.emp_production) emp_production
from Employee a join Production b on a.emp_name = b.QC_name
group by a.emp_name
-- Author :fredrickhu(小F,向高手学习)
-- Date :2011-09-21 14:50:32
-- Verstion:
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86)
-- Apr 22 2011 11:57:00
-- Copyright (c) Microsoft Corporation
-- Enterprise Evaluation Edition on Windows NT 6.1 <X64> (Build 7600: ) (WOW64)
--
----------------------------------------------------------------
--> 测试数据:[Employee]
if object_id('[Employee]') is not null drop table [Employee]
go
create table [Employee]([emp_name] varchar(4),[emp_type] varchar(8),[emp_memo] varchar(6))
insert [Employee]
select '张三','Designer','设计员' union all
select '李四','Designer','设计员' union all
select 'QC_1','QC','质检员' union all
select 'QC_2','QC','质检员'
--> 测试数据:[Production]
if object_id('[Production]') is not null drop table [Production]
go
create table [Production]([emp_name] varchar(4),[emp_production] int,[QC_name] varchar(4))
insert [Production]
select '张三',100,'QC_2' union all
select '张三',100,'QC_1' union all
select '李四',100,'QC_2' union all
select '张三',100,'QC_2' union all
select '李四',100,'QC_2'
--------------开始查询--------------------------
select
a.emp_name,SUM(emp_production) as emp_production
from
Employee a join Production b
on
a.emp_name=b.emp_name
or
a.emp_name=b.QC_name
group by
a.emp_name
----------------结果----------------------------
/* emp_name emp_production
-------- --------------
QC_1 100
QC_2 400
李四 200
张三 300(4 行受影响)*/
union all
select a.emp_name,sum(b.emp_production) from employee a inner join production b on a.emp_name=b.QC_name group by a.emp_name
a.[emp_name],SUM([emp_production]) AS [emp_production]
FROM Employee AS a
INNER JOIN Production AS b ON a.emp_name IN(b.emp_name,b.[QC_name])
GROUP BY a.[emp_name]
from Employee a join Production b on a.emp_name = b.emp_name
group by a.emp_name
union all
select a.emp_name,isnull(sum(b.emp_production),0) emp_production
from Employee a join Production b on a.emp_name = b.QC_name
group by a.emp_name
--感觉用不上表1,直接查表2就可以得出来了
--Table_1:
create table Employee(emp_name varchar(20), emp_type varchar(20), emp_memo varchar(20))
go
insert into employee(
emp_name, emp_type, emp_memo)
select '张三', 'Designer', '设计员' union all
select '李四', 'Designer' ,'设计员' union all
select 'QC_1','QC','质检员' union all
select 'QC_2','QC','质检员'--Table_2:
create table Production(emp_name varchar(20), emp_production int,QC_name varchar(20))
go
insert into production(
emp_name ,emp_production ,QC_name)
select '张三',100, 'QC_2' union all
select '张三',100, 'QC_1' union all
select '李四',100, 'QC_2' union all
select '张三',100, 'QC_2' union all
select '李四',100, 'QC_2'--查询
select emp_name,sum(emp_production) emp_procution_count
from production
group by emp_name
union
select QC_name,sum(emp_production) emp_procution_count
from production
group by QC_name--结果
emp_name emp_procution_count
QC_1 100
QC_2 400
李四 200
张三 300
from production
group by emp_name
union
select QC_name,sum(emp_production) emp_procution_count
from production
group by QC_name