分享

SQL Server经典面试题之一

 WindySky 2007-04-09
SQL Server经典面试题之一
朱二(2006.12 转载请注明作者)


问题说明:有三个表,项目表、合同表、付款表
一个项目可能会有签署多个合同,每个合同会分几次付款。

--下面是建立表的语句
create table 项目(项目编号 int,项目名称 varchar(50))
insert 项目
select 1, ‘项目1‘
union
select 2, ‘项目2‘
union
select 3, ‘项目3‘


create table 合同(合同编号 int,项目编号 int,合同金额 numeric(7,3))

insert 合同
select 1,1,1000
union
select 2,1,1500
union
select 3,2,2000

create table 付款(付款编号 int,合同编号 int,付款金额 numeric(7,3))

insert 付款
select 1,1,100
union
select 2,2,200
union
select 3,2,800

 

问题(一):
设计一个查询,要求返回结果如下:
----------------------------------------------------------
项目编号    项目名称             项目所有合同的金额     
----------- ------------------------ ---------------------
1           项目1                    2500
2           项目2                    2000
3           项目3                    NULL


问题(二):
设计一个查询,要求返回结果如下:
--------------------------------------
项目编号    项目所有合同已付款金额   
----------- --------------------------
1           1100
2           NULL
--------------------------------------

问题(三)
设计一个查询,要求返回结果如下:
项目编号    项目名称        项目所有合同已付款金额 
----------- ----------------------------------------
1           项目1   1100
2           项目2   NULL
----------------------------------------------------

问题(四):
请您设计一个查询语句,检索的格式如下:
------------------------------------------------------------------------
项目编号    项目名称    项目所有合同的金额    项目所有合同已付款金额 
------------------------------------------------------------------------
1           项目1        2500.000              1100.000
2           项目2        2000.000              NULL
------------------------------------------------------------------------

考核点:问题一、二、三考核连接、分组统计的综合运用
 问题四考核连接、分组统计、子查询的综合运用

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多