❶ 請編寫一條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'