标题:[求助]sql两张表的联合查询(结帖)
只看楼主
梓风
Rank: 2
等 级:新手上路
威 望:4
帖 子:181
专家分:0
注 册:2006-10-22
 问题点数:0 回复次数:6 
[求助]sql两张表的联合查询(结帖)

一、SQLServer 数据库方面的题目:

有2张表,为父子关系表:

1 Employee 表
id Name Age
1 张三 31
2 李四 28
3 王五 40
...

2 Wages 表
-------------------------------------------------
Emp_id | 工资项目 | 工资金额 |
-------------------------------------------------
1 | 基本工资 | 1.00 |
-------------------------------------------------
1 | 补助 | 2.00 |
-------------------------------------------------
1 | 津贴 | 3.00 |
-------------------------------------------------
2 | 基本工资 | 4.00 |
-------------------------------------------------
2 | 补助 | 5.00 |
-------------------------------------------------
2 | 津贴 | 6.00 |
-------------------------------------------------
3 | 基本工资 | 7.00 |
-------------------------------------------------
3 | 补助 | 8.00 |
-------------------------------------------------
3 | 津贴 | 9.00 |
-------------------------------------------------
.........

其中, Employee 表的 id 对应于 Wages 表的 Emp_id 是1对多的关系。
请从上表用 “一句组合查询” 查询出工资统计表,要求检索出的内容格式如下:

id Name Age 基本工资 补助 津贴 合计
1 张三 31 1 2 3 6
2 李四 28 4 5 6 15
3 王五 40 7 8 9 24


表创建代码:
CREATE TABLE [dbo].[Employee] (
[id] [int] NULL ,
[UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[Wages] (
[empid] [int] NULL ,
[Wages] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[number] [int] NULL
) ON [PRIMARY]
GO
insert into Employee values(1,'张三')
insert into Employee values(2,'李四')
insert into Employee values(3,'王五')
insert into Wages values(1,'基本工资',1)
insert into Wages values(1,'奖金',2)
insert into Wages values(1,'补贴',6)
insert into Wages values(2,'基本工资',3)
insert into Wages values(2,'奖金',4)
insert into Wages values(2,'补贴',5)
insert into Wages values(3,'基本工资',7)
insert into Wages values(3,'奖金',8)
insert into Wages values(3,'补贴',9)

[此贴子已经被作者于2007-4-29 13:42:18编辑过]

搜索更多相关主题的帖子: sql 工资 数据库 Emp 
2007-04-29 12:06
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 
用UNION关键字
不知道写错没

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-04-29 12:36
梓风
Rank: 2
等 级:新手上路
威 望:4
帖 子:181
专家分:0
注 册:2006-10-22
得分:0 

用了,但是没能写出来


等待相逢
2007-04-29 12:53
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
得分:0 
是不是你的SQL语句不正确哦?

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-04-29 12:58
梓风
Rank: 2
等 级:新手上路
威 望:4
帖 子:181
专家分:0
注 册:2006-10-22
得分:0 
能不能帮我把语句写下,谢过

等待相逢
2007-04-29 13:05
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 
select id,Username as name,sum(case w1.wages when '基本工资' then number else 0 end) as 基本工资,
sum(case w1.wages when '奖金' then number else 0 end) as 奖金,
sum(case w1.wages when '补贴' then number else 0 end) as 补贴,sum(number) as 合计
from Employee e1,Wages w1 where e1.[id]= w1.[empid] group by id,Username order by id

26403021 sql群 博客 blog./user15/81152/index.shtml
2007-04-29 13:23
梓风
Rank: 2
等 级:新手上路
威 望:4
帖 子:181
专家分:0
注 册:2006-10-22
得分:0 
谢谢,结帖

[此贴子已经被作者于2007-4-29 13:41:53编辑过]



等待相逢
2007-04-29 13:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-135902-1-1.html




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

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