zoukankan      html  css  js  c++  java
  • SqlServer基操误6,请坐~

    SQL Server 技术水平测试题

     

    一、 语言测试题  50分)

    注:只需写出语句,不必列出执行结果

    前提:假设现有两张表,以【A0190】(人员编号)为关联。表结构分别如下描述:

    A01  (人员信息表)

    序号

    字段名称

    中文描述

    数据类型

    数据长度

    属性

    1

    A0190

    人员编号

    字符

    16

    主键约束

    2

    A0101

    姓名

    字符

    10

    非空

    3

    A0177

    身份证号

    字符

    18

    可空

    4

    A0111

    出生日期

    日期

     

    可空

    5

    A01101

    年龄

    数值

    4

    可空

    6

    A01114

    学历

    字符

    20

    可空

    A64  (学历信息表)

    序号

    字段名称

    中文描述

    数据类型

    数据长度

    属性

    1

    A0190

    人员编号

    字符

    16

    主键约束

    2

    A_ID

    序号

    整型

    4

    非空 自增量(11

    3

    A0405

    学历

    字符

    10

    可空

    4

    A0410

    所学专业

    字符

    30

    可空

    5

    A0415

    入学时间

    日期

    10

    可空

    6

    A0425

    学制

    数值

    41

    可空

    A01表内数据

    人员编号

    姓名

    身份证号

    学历

    出生日期

    2

    刘敏

    130404195402153033

    大本毕业

    1954-2-15

    4

    郝贤

    130404720405243

    研究生

    1972-4-5

    11

    冷传东

    130404561030302

    研究生

    1956-10-30

    12

    黄晓楠

    130481770128167

    大本毕业

    1977-1-28

    13

    洪军

    230102791008162

    大本毕业

    1979-10-8

    14

    王敏

    130481740905271

    大本毕业

    1974-9-5

    16

    王德财

    130404561115247

    大本毕业

    1956-11-15

    18

    于静

    130404751201303

    大本毕业

    1975-12-1

    19

    王宪君

    130404197306092410

    大本毕业

    1973-6-9

    A64 表内数据

    人员编号

    序号

    学历

    所学专业

    入学时间

    学制

    2

    1

    大本毕业

    企业管理

    1974-7-1

    4

    2

    2

    高中

    NULL

    1971-9-1

    3

    2

    3

    研究生毕业

    MBA

    2000-4-10

    2

    4

    4

    大学毕业

    经济信息管理

    1991-7-1

    3

    4

    5

    研究生毕业

    MBA

    2000-4-1

    2

    11

    6

    研究生

    材料及热处理

    1985-9-1

    2

    12

    7

    大本毕业

    材料及热处理

    1980-7-1

    4

    13

    8

    大本毕业

    材料及热处理

    1982-9-1

    4

    14

    9

    大本毕业

    材料及热处理

    1983-9-1

    4

    16

    10

    大本毕业

    材料及热处理

    1984-9-1

    4

    18

    11

    大本毕业

    材料及热处理

    1983-10-1

    4

    19

    12

    大本毕业

    材料及热处理

    1988-1-1

    4

     

    1、 A64表插入一个列   (5分)

    7

    A01115

    血型

    字符

    20

    可空

    Arter table A64 add a011115 varchar(20) null

    2、 A64表内插入下面的数据   (5分)

    人员编号

    学历

    所学专业

    入学时间

    12

    大本毕业

    企业管理

    1979-7-1

    Insert into A64(人员编号,学历,所学专业,入学时间) 

    values (12,’大本毕业’,’企业管理’,’1979-7-1’);

    3、 更新A01表,把所有“王”姓人员,变成“李”姓人员(10分)

    update A01  set A0101= ''+ SUBSTRING(A0101, LEN('') + 1, LEN(A0101)) where A0101like '%'

    4、 写出一段语句,计算出在70年代的人员占总数的百分比是多少?  (5分)

        Select (Select count(1) form A01 where

         CONVERT(VARCHAR(10),出生日期,120) >’1970%’ 

         and CONVERT(VARCHAR(10),出生日期,120) <’1980%’

         ) / count(1)  as a1 form A01

    5、 更新A01表,根据出生日期,得出每个人的年龄  5分)

    提示:与系统时间比较,取相差年数

    Update A01 set A01101 = DATEDIFF(year,A0111,getdate()) where A0190=A0190

    6、 查询出A01表中大于平均年龄的人员名单  (5分)

    Select * from A01 where DATEDIFF(year,A0111,getdate()) >(Select sum(DATEDIFF(year,A0111,getdate())) / count(1) from A01)

    7、 查询出A01表中,学历记录 =2的人员名单  (15分)

    提示:A01A64 A0190关联,以A64中每个人的记录数 =2为条件

    Select * from A01 where A0190 in (Select A01.A0190 from A01 left join A64  on   A01.A0190 = A64.A0190 group by having count(A0190) >= 2)

    加试题:

    C21表中,应税工资C2101,个人所得税C2102

    根据个人所得税计算公式及税率表,计算出个人所得税。

    语句应该涵盖各种税率,要求用Case语句。

    个人所得税计算公式:

       个人所得税=(应税工资-1600× 税率速算扣除数

    级数

    应纳税所得额

    税率(%

    速算扣除数

    1

     不超过500元的

    5

    0

    2

    超过500元至2000的部分

    10

    25

    3

    超过2000元至5000的部分

    15

    125

    4

    超过5000元至20000元的部分

    20

    375

    5

    超过20000元至40000元的部分

    25

    1375

    6

    超过40000元至60000元的部分

    30

    3375

    7

    超过60000元至80000元的部分

    35

    6375

    8

    超过80000元至100000元的部分

    40

    10375

    9

    超过100000元的部分

    45

    15375

    select

      case when (C2101-1600) <500 then (C2101-1600)  *  C2102 

      case when (C2101-1600) BETWEEN 500 and 2000

      then (C2101-1600)* C2102 -25

      case when (C2101-1600) BETWEEN 2000 and 5000

      then (C2101-1600)* C2102 -125

      case when (C2101-1600) BETWEEN 5000 and 20000 

      then (C2101-1600)* C2102 -375

      case when (C2101-1600) BETWEEN 20000 and 40000 

      then (C2101-1600)* C2102 -1375

      case when (C2101-1600) BETWEEN 40000 and 60000 

      then (C2101-1600)* C2102 -3375

      case when (C2101-1600) BETWEEN 60000 and 80000 

      then (C2101-1600)* C2102 -6375

      case when (C2101-1600) BETWEEN 80000 and 100000 

      then (C2101-1600)* C2102 -10375

      else

        (C2101-1600)* C2102 -15375

      end

      from C21

  • 相关阅读:
    解压缩编码列表
    按既定顺序创建目标数组
    整数的各位积和之差
    好数对的数目
    拿硬币
    设计 Goal 解析器
    【求助】win 2008 R2 远程桌面多用户,破解最大连接数2的限制
    Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
    Java abstract class 和 interface 的区别
    忘记BIOS超级管理员密码,怎么破解?
  • 原文地址:https://www.cnblogs.com/dxylx/p/8537475.html
Copyright © 2011-2022 走看看