您的位置:首页 > 数据库

2道关于 SQLServer 数据库方面的题目:

2007-05-30 23:34 369 查看
2道关于 SQLServer 数据库方面的题目:

第一题目:
有如下表,分别记录了“张三”每天消费的情况。其中,消费类型只有3种:1 买香烟 2 加油 3 吃饭

-------------------------------------------------
时间 | 消费类型 | 消费金额 |
-------------------------------------------------
2006-1-1 | 1 | 10.00 |
-------------------------------------------------
2006-1-1 | 2 | 200.00 |
-------------------------------------------------
2006-1-1 | 1 | 12.00 |
-------------------------------------------------
2006-1-1 | 3 | 12.00 |
-------------------------------------------------
2006-1-2 | 1 | 11.00 |
-------------------------------------------------
2006-1-2 | 3 | 107.00 |
-------------------------------------------------
2006-1-3 | 1 | 17.00 |
-------------------------------------------------
2006-1-3 | 3 | 17.00 |
-------------------------------------------------
2006-1-4 | 1 | 10.00 |
-------------------------------------------------
.........

请从上表用 “一句组合查询” 查询出每日消费统计表,要求检索出的内容格式如下:
-------------------------------------------------------------------------
年 | 月 | 日 | 买香烟 | 加油 | 吃饭 |
-------------------------------------------------------------------------
2006 | 1 | 1 | 22.00 | 200.00 | 12.00 |
-------------------------------------------------------------------------
2006 | 1 | 2 | 11.00 | 0.00 | 107.00 |
-------------------------------------------------------------------------
2006 | 1 | 3 | 17.00 | 0.00 | 17.00 |
-------------------------------------------------------------------------
2006 | 1 | 4 | 10.00 | 0.00 | 0.00 |
-------------------------------------------------------------------------

为节省程序员创建元数据表的时间,请执行下列语句生成:

create table CostList (时间 datetime, 消费类型 int, 消费金额 money)
insert into CostList values ('2006-1-1', 1, 10)
insert into CostList values ('2006-1-1', 2, 200)
insert into CostList values ('2006-1-1', 1, 12)
insert into CostList values ('2006-1-1', 3, 12)
insert into CostList values ('2006-1-2', 1, 11)
insert into CostList values ('2006-1-2', 3, 107)
insert into CostList values ('2006-1-3', 1, 17)
insert into CostList values ('2006-1-3', 3, 17)
insert into CostList values ('2006-1-4', 1, 10)
GO

select 消费金额=isnull(sum(case 消费类型 when 3 then 消费金额 end) ,0) from CostList group by 时间
(请调试通过并结果正确后再回复答案,请注意语句的性能)
===================================================

第2题:

已知父子关系记录存在于一张表中:
__________________________________________
id | Parent_id | Name
------------------------------------------
1 | -1 | 张三
------------------------------------------
2 | 1 | 里斯
------------------------------------------
3 | 1 | 王武
------------------------------------------
4 | 2 | 赵六
------------------------------------------
5 | 3 | 牛七
------------------------------------------
.......

用一个存储过程,计算出某用户下级共有多少子记录(下级的下级...所有子级)

P_GetUsersScore @User_id bigint, @Score int output
AS
.....
.....
set @Score = xxxx
GO

注:级别层数可能会超过100层,注意性能。(请调试通过并结果正确后再回复答案)

=========================================================================
The End.
=========================================================================
.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: