首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个子查询的有关问题

2013-09-11 
一个子查询的问题?--显示出实际工资比总体平均工资低的女职工createdatabase冰人集团--建立数据库gouse冰

一个子查询的问题?
--   显示出实际工资比总体平均工资低的女职工

create   database   冰人集团     --建立数据库
go
use   冰人集团   --打开数据库

create   table   部门
(
    部门号   int   primary   key,
    部门名称   char(10)   not   null
)   --建立部门表

insert   into   部门   values(1, '财务处 ')     --填充数据
insert   into   部门   values(2, '人事处 ')
insert   into   部门   values(3, '市场部 ')

create   table   职工     --建立职工表
(
    职工号   int   primary   key,
    姓名   char(10)   not   null,
    性别   char(2)   check(性别= '男 '   or   性别= '女 '),
    出生日期   smalldatetime   check(出生日期 <getdate()),
    党员   char(2)   check(党员= '是 '   or   党员= '否 '),
    入职时间   smalldatetime   check(入职时间 <getdate()),
    所在部门   int   foreign   key   references   部门(部门号),
    籍贯   char(10)
)

insert   into   职工   values(1, '孙华 ', '男 ', '1952-1-3 ', '是 ', '1970-10-10 ',1, '天津市 ')
insert   into   职工   values(2, '陈明 ', '男 ', '1945-5-8 ', '否 ', '1965-1-1 ',2, '北京市 ')
insert   into   职工   values(3, '程西 ', '女 ', '1980-6-10 ', '否 ', '2002-7-10 ',1, '北京市 ')
insert   into   职工   values(4, '苏天气 ', '女 ', '1965-3-10 ', '是 ', '1987-7-10 ',2, '天津市 ')
insert   into   职工   values(5, '刘少文 ', '男 ', '1942-1-1 ', '否 ', '1960-8-10 ',2,null)
insert   into   职工   values(6, '刘新 ', '男 ', '1952-10-8 ', '否 ', '1970-7-1 ',1, '上海市 ')
insert   into   职工   values(7, '余辉 ', '女 ', '1980-12-4 ', '否 ', '2001-7-10 ',3, '武汉市 ')
insert   into   职工   values(8, '王晓艳 ', '女 ', '1980-11-10 ', '是 ', '2001-7-10 ',2, '河北省 ')
insert   into   职工   values(9, '李玉 ', '女 ', '1964-2-12 ', '是 ', '1989-7-15 ',1, '天津市 ')
insert   into   职工   values(10, '周涛 ', '男 ', '1963-2-10 ', '否 ', '1983-7-20 ',3, '河北省 ')
insert   into   职工   values(11, '欧阳少兵 ', '男 ', '1965-4-19 ', '否 ', '1984-7-12 ',2, '北京市 ')
insert   into   职工   values(12, '张旗 ', '男 ', '1980-11-10 ', '否 ', '1999-9-18 ',3, '天津市 ')
insert   into   职工   values(13, '李涵 ', '女 ', '1982-5-10 ', '否 ', '2002-2-14 ',3, '天津市 ')
insert   into   职工   values(14, '魏君 ', '女 ', '1977-3-23 ', '是 ', '1993-7-10 ',3,null)
insert   into   职工   values(15, '李艺 ', '男 ', '1979-9-18 ', '否 ', '2001-7-20 ',3, '上海市 ')

create   table   工资--建立工资表
(
    职工号   int   primary   key   foreign   key   references   职工(职工号),
    月份   int   check(月份> =1   and   月份 <=12),
    基本工资   money   check(基本工资> 0),
    津贴   money   check(津贴> =0),


    补助   money   check(补助> =0),
    奖金   money   check(奖金> =0),
    扣除   money   check(扣除> =0),
    税收   money   check(税收> =0)
)

insert   into   工资   values(1,8,2800,1200,180,200,0,220)
insert   into   工资   values(2,8,2600,1000,200,300,0,180)
insert   into   工资   values(3,8,1880,880,200,260,50,120)
insert   into   工资   values(4,8,2200,980,180,230,80,110)
insert   into   工资   values(5,8,2300,880,210,0,0,125)
insert   into   工资   values(6,8,2100,600,220,180,50,110)
insert   into   工资   values(7,8,2200,800,180,200,120,120)
insert   into   工资   values(8,8,2000,780,120,100,0,100)
insert   into   工资   values(9,8,2500,870,130,150,0,120)
insert   into   工资   values(10,8,2350,700,250,180,50,120)
insert   into   工资   values(11,8,1900,800,260,130,0,100)
insert   into   工资   values(12,8,1800,500,200,100,50,100)
insert   into   工资   values(13,8,1580,500,200,100,0,100)
insert   into   工资   values(14,8,1300,450,200,100,0,100)
insert   into   工资   values(15,8,1380,450,200,100,0,10)

select   姓名   from   职工,工资   where   职工.职工号   in
(select   职工号   from   工资   where   基本工资+津贴+补助+奖金-扣除-税收
in(select   基本工资+津贴+补助+奖金-扣除-税收   from   工资,职工   where   职工.职工号=工资.职工号   and   性别= '女 ') <
(select   avg(基本工资+津贴+补助+奖金-扣除-税收)   from   工资)
)   and   职工.职工号=工资.职工号   and   性别= '女 '

--   报错

服务器:   消息   170,级别   15,状态   1,行   3
第   3   行:   ' < '   附近有语法错误。
服务器:   消息   170,级别   15,状态   1,行   5
第   5   行:   ') '   附近有语法错误。

[解决办法]
select 姓名
from 职工,工资
where 职工.职工号=工资.职工号
and 性别= '女 '
and (基本工资+津贴+补助+奖金-扣除-税收) < (select avg(基本工资+津贴+补助+奖金-扣除-税收) from 工资)
我的异常网推荐解决方案:软件开发者薪资,http://www.myexception.cn/other/1391128.html

热点排行