❶ 请编写一条sql语句完成;查询所有员工的平均月薪,输出平均月薪emp_avg
select avg(salary) emp_avg from
emp_salary
emp_salary为工资表名称
❷ 用SQL语句查出员工工资表(WorersSalary)所有信息,工资最高的前三条信息按升序排在最前面,其余的按原序
请说明使用的数据库类型
mysql如下
select distinct * from(
select * from WorersSalary orde by Salary desc limit 0,3 a union
select * from WorersSalary b)
sqlserver如下
select distinct * from(
select top 3 * from WorersSalary orde by Salary desc a union
select * from WorersSalary b)
❸ 试编写一个简单SQL脚本程序,创建工资表并完成计算实发工资的任务。
SELECT A.*,实发工资=应发工资-税款
FROM (SELECT 职工号,姓名,基本工资,附加工资,基本工资+附加工资 AS 应发工资,
CASE WHEN 基本工资+附加工资>5000 THEN 0.2 WHEN 基本工资+附加工资>2000
THEN 0.1 WHEN 基本工资+附加工资>800 THEN 0.05 ELSE 0 END*基本工资+附加工资 AS
税款 FROM R) A
❹ sql查询语句,请高手做做,满意加分
1.select datediff(yy,出生日期,getdate()) from 职工表
2.select 部门号 as depName,count(职工号) as num from 职工表 where 党员否=(是党员的那个标志) group by 部门号
3.select a.姓名,b.工资 from 职工表 a,职工工资表 b where a.职工号=b.职工号 and b.日期=(数据库中存的2004年1月的日期)
4.select a.职工号,a.姓名,avg(b.工资) as avgSalary from 职工表 a,职工工资表 b where a.职工号=b.职工号 group by a.职工号,a.姓名
5.select a.职工号,a.姓名,b.部门名,c.工资 from 职工表 a,部门表 b,职工工资表 c where a.职工号=c.职工号 and a.部门号=b.部门号 and c.日期=(数据库中存的2004年2月的日期) order by b.部门名
6.select b.部门名,avg(c.工资) as avgSalary from 职工表 a,部门表 b,职工工资表 c where a.职工号=c.职工号 and b.部门号=a.部门号 group by b.部门名
7.select b.部门名,avg(c.工资) as avgSalary from 职工表 a,部门表 b,职工工资表 c where a.职工号=c.职工号 and b.部门号=a.部门号 group by b.部门名 having avg(c.工资)>1200
8.select a.职工号,a.姓名,(case when b.部门名='财务处' then '管理部门' when b.部门名='人事处' then '管理部门' else '市场部门' end) as depType
from 职工表 a,部门表 b where b.部门号=a.部门号
❺ SQL语句 工资表 Salary (员工 ID,工资 Money) 用Select语句写出工资表工资前五名,怎么写谢谢
SQL SERVER 有TOP()函数很方便可以直接取前N行的如下:
SELECT TOP(5) * FROM Salary ORDER BY Money DESC;
Oracle没有TOP()这个函数
可以使用rownum这个隐藏列来实现
SELECT * FROM (SELECT * FROM Salary ORDER BY Money DESC)
WHERE ROWNUM<=5;
❻ sql语句求出第三到第五的工资
sql查询员工的基本工资排名第3-5位的姓名和基本工资,select top 4 姓名,工资 from 表a where 姓名 not in (select top 2 姓名 from 表a order by 工资 desc) order by 工资 desc
查工资的方法:
1、select * from 部门
2、where not exists (select * from 员工 where 员工.部门号=部门.部门号 and 工资 <= 5000)
❼ Test数据库中,用T-SQL语句创建员工工资表,各列的要求如 下表所示
CREATE TABLE [dbo].[员工工资表](
[NO] [int] NOT NULL,
[Xm] [varchar](30) NOT NULL,
[Gz] [decimal](8, 2) NULL,
[YwJj] [decimal](8, 2) NULL,
[Sds] [decimal](8, 2) NULL,
[SfGz] AS (([Gz]+[YwJj])-[Sds]),
CONSTRAINT [PK_员工工资表] PRIMARY KEY CLUSTERED
(
[NO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号、主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'NO'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'Xm'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工资' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'Gz'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务奖金' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'YwJj'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所得税' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'Sds'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实发=Gz+YwJj-Sds' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'SfGz'