首页 👨‍💻计算机,🐋mysql

题目

1求出产品资料、单价最高 、和库存最高的并且求出总和

SELECT MAX(`单价`+0)*`库存量`as 单价最高 , MAX(`库存量`+0)*`单价`AS 库存最高  FROM  `产品资料`

2请在商品供应中将供应商编号按升序排序,并取出前三行

select * from 商品供应 order by 供应商编号 limit 3

3本公司因为资金链问题要对大幅度裁员,任何员工都有可能被裁员,并补给裁员补贴(3+1)*目前薪资(显示,姓名,部门,目前薪资,直属主管,并对部门,目前薪资,直属主管进行分组,年龄,婚姻状况,标记已婚和未婚,性别男女,并创建补给金列

SELECT 姓名,部门,直属主管,
CASE 性别
WHEN 0 THEN '男'
WHEN -1 THEN '女'
end AS '性别',
YEAR(NOW())-YEAR(出生日期) AS 年龄,
目前薪资*(3+1) AS 补给金,
CASE `婚姻状况` 
WHEN '-1' THEN '未婚' 
WHEN '0' THEN '已婚' 
ELSE '不祥' 
END `婚姻状况`,
目前薪资 FROM 员工 GROUP BY 部门,目前薪资,直属主管

4 前段时间是七夕节,公司对25岁到45(包含45)岁之间的未婚女性进行1500的加薪
SELECT 员工编号,姓名,部门, YEAR(NOW())-YEAR(出生日期)AS 年龄,

CASE `性别`
    WHEN  -1 THEN '女'
        WHEN 0 THEN '男'
    ELSE '不详'
END 性别,
CASE 婚姻状况
    WHEN  -1 THEN '未婚'
        WHEN 0 THEN '已婚'
    ELSE '不详'
END 婚姻状况,目前薪资+1500 AS 加薪后
FROM `员工` WHERE   `性别`=-1 AND `婚姻状况`=-1 HAVING 年龄>=25 AND 年龄<=45

5在员工表中统计出财务部中,女性,未婚,女员工总人数(其中性别改为girl)

case 婚姻状况 
when -1 then '未婚'
when 0 then '已婚'
else '不详'
end 婚姻状况,
case 性别
when -1 then '女'
when 0 then '男'
else '不详'
end girl ,
count(*) as 人数 
from 员工 group by 部门,性别,婚姻状况 having 部门='财务部' and 性别=-1 and 婚姻状况=-1

6请在选课成绩表中添加一列,名为备注,请按照成绩添加值,最后按照成绩列进行降序排序
(成绩小于60为'不及格',成绩大于等于60小于80为'良好',成绩大于等于80小于90为'优良',
成绩大于等于90为'优秀')

select *,case when 成绩<60 then '不及格' when 成绩>=60 and 成绩<80 then '良好' 
when 成绩>=80 and 成绩<90 then '优良' else '优秀' end 备注 from 选课成绩 order by 成绩 desc

7员工表中 因直属主管--李华得罪了老总, 所以李华主管所管理的员工, 目前薪资一律减少1000块 以示惩罚,为了杀人诛心其他直属主管的手下加目前薪资800
-- j计算出被扣完工资后每个部门的目前薪资总和
-- 并且按照部门工资为第一关键字降序排序

select 直属主管,`部门`,SUM(`目前薪资`)AS 部门工资,
case 直属主管
when '李华' then 目前薪资-1000
else
 `目前薪资`+800
end 目前薪资
FROM `员工`   GROUP BY `部门` ORDER BY  部门工资 DESC;

8找出其他部门比生产制造部门的平均年龄大且家住北京的已婚男员工的信息,年龄字段列以升序显示。(表:员工表,显示字段:姓名,性别,年龄,住址,部门,婚姻状况
婚姻状况;要求:性别列数据换为男或女,婚姻状况列数据换为已婚或未婚)

SELECT 姓名,
CASE 性别 
WHEN -1 THEN "女" 
WHEN 0 THEN "男" 
ELSE "不详"
END 性别,
YEAR(NOW())-YEAR(出生日期) AS 年龄,
CASE 婚姻状况 
WHEN -1 THEN "未婚" 
WHEN 0 THEN "已婚" 
ELSE "不详"
END 员工婚姻状况,
家庭住址,
部门
FROM `员工`
WHERE
CASE 婚姻状况 
WHEN -1 THEN "未婚" 
WHEN 0 THEN "已婚" 
ELSE "不详"
END="已婚"
AND
CASE 性别 
WHEN -1 THEN "女" 
WHEN 0 THEN "男" 
ELSE "不详"
END="男" 
AND
`家庭住址` LIKE "%北京%"
AND
`部门` <> "生产制造部"
AND YEAR(NOW())-YEAR(出生日期)>(
SELECT AVG(YEAR(NOW())-YEAR(出生日期))
FROM `员工`
WHERE `部门`="生产制造部")
ORDER BY YEAR(NOW())-YEAR(出生日期);

9 查询员工表中生产制造部未婚女性人数:

select 部门,
case 性别 
   when 0 then '男'
   when -1 then '女'
end as sex ,婚姻状况, count(*) as 人数 from 员工 group by 部门,性别,婚姻状况 having 部门='生产制造部' and sex='女' and 婚姻状况=-1

10查看信息部平均年龄大于其他部门的员工信息

SELECT `姓名`,`目前薪资`, `部门`,YEAR(NOW())-YEAR(`出生日期`)AS 年龄 FROM `员工` 
WHERE    YEAR(NOW())-YEAR(`出生日期`) >(SELECT AVG( YEAR(NOW())-YEAR(`出生日期`))FROM `员工`WHERE `部门`='信息部')
AND `部门`!='信息部'



文章评论

目录