sql查询语句常用例子

时间:2024-03-05 19:08:36

1、查找与jams在同一个单位的员工姓名、性别、部门和职称:
select emp_no, emp_name, dept, title  from employee where emp_name<>\'jams\' and dept in (select dept from employee where emp_name=\' jams\'\')

2、按部门进行汇总,统计每个部门的总工资
select  dept, sum(salary)  from employee  group by dept

3、查找员工的编号、姓名、部门和出生日期,并按部门排序输出
select emp_no ,emp_name ,dept , birthday from employee order by dept

4、查找商品名称为三星笔记本商品的销售情况,显示该商品的编号、销售数量、单价和金额
select a.prod_id, qty, unit_price, unit_price*qty totprice from sale_item a,product b where a.prod_id=b.prod_id and prod_name=\'三星笔记本\'

5、在销售明细表中按产品编号进行汇总,统计每种产品的销售数量和金额
select prod_id, sum(qty) totqty, sum(qty*unit_price) totprice from sale_item group by prod_id

6、使用convert函数按客户编号统计每个客户2011年的订单总金额
select cust_id, sum(tot_amt) totprice from sales where convert(char(4),order_date,120)=\'2011\' group by cust_id

7、查找有销售记录的客户编号、名称和订单总额
select a.cust_id, cust_name, sum(tot_amt) totprice from customer a,sales b where a.cust_id=b.cust_id group by a.cust_id,cust_name

8、查找在2012年中有销售记录的客户编号、名称和订单总额
select a.cust_id,cust_name,sum(tot_amt) totprice from customer a,sales b where a.cust_id=b.cust_id and convert(char(4),order_date,120)=\'2012\' group by a.cust_id,cust_name

9、查找一次销售额最大的销售记录
select order_no, cust_id, sale_id, tot_amt from sales where tot_amt= (select max(tot_amt) from sales)

10、查找至少有5次销售的业务员名单和销售日期
select emp_name,order_date from employee a,sales b where emp_no=sale_id and a.emp_no in (select sale_id from sales group by sale_id having count(*)>=5)
order by emp_name

11、用存在量词查找没有订货记录的客户名称
select cust_name from customer a where not exists (select * from sales b where a.cust_id=b.cust_id)

 12、 求各部门的平均薪水,要求按平均薪水从小到大排序
select dept, avg(salary) from employee group by dept order by avg(salary)

13、 查询总订购金额超过’D0011’客户的总订购金额的客户号,客户名及其住址
Select cust_id, cust_name,addr From customer Where cust_id in (select cust_id from sales Group by cust_id Having sum(tot_amt)>
(Select sum(tot_amt) from sales where cust_id=\'D0011\'))

14、 查询没有承接业务的员工的信息
Select * From employee a Where not exists (select * from sales b where a.emp_no=b.sale_id)

15、 查询订购的产品至少包含了订单20004中所订购产品的订单
Select distinct order_no From sale_item a Where order_no<>\'20004\' and not exists ( Select * from sale_item b where order_no =\'20004\' and not exists
(select * from sale_item c where c.order_no=a.order_no and c.prod_id=b.prod_id))

16、 查询订购了4种以上产品的订单号。
Select order_no from sale_item Group by order_no Having count(*)>4

17、 求每位客户订购的每种产品的总数量及平均单价,并按客户号,产品号从小到大排列。
Select cust_id,prod_id,sum(qty),sum(qty*unit_price)/sum(qty) From sales a, sale_item b Where a.order_no=b.order_no Group by cust_id,prod_id
Order by cust_id,prod_id

18、 求出每位客户的总订购金额,显示出客户号及总订购金额,并按总订购金额降序排列。
Select cust_id,sum(tot_amt) from sales Group by cust_id Order by sum(tot_amt) desc

19、 找出公司女业务员所接且订单金额超过80000元的订单号及订单金额。
Select order_no,tot_amt From sales ,employee Where sale_id=emp_no and sex=\'F\' and tot_amt>80000

20、在employee表中查询薪水超过员工平均薪水的员工信息。
Select * from employee where salary>(select avg(salary) from employee)

21、将技术部员工的薪水上调5%。
update employee set salary=salary*1.05 where dept=\'技术部\'

22、计算出一共销售了几种产品。
select count(distinct prod_id) as \'共销售产品数\' from sale_item

23、选取编号界于‘A0001’和‘B0004’的客户编号、客户名称、客户地址。
select CUST_ID, cust_name, addr from customer where cust_id between \'A0001\' AND \'B0004\'

24、将表中住址为"上海市"的员工住址改为"北京市"
update employee set addr=\'北京市\' where addr like \'上海市\'

25、查询表中的同一部门的职工的平均工资,但只查询"住址"是"北京市"的员工
select avg(salary) avg_sal,dept from employee where addr like \'北京市%\' group by dept

26、执行带参数的存储过程

EXEC sp2_F_QueueConfirmCustomerInsert @OrderID =\'343235365\'

27、统计两个时间差值

SELECT datediff(s,a.createtime,b.createtime) as \'耗时(s)\',a.orderid,b.createtime,a.createtime FROM db..AutomationIssueRequest a,db..AutomationInStock b  where a.orderid=b.orderid and b.createtime >\'2013-01-10 15:56:20.000\'

28、查看存储过程源码

EXEC sp_helptext sp_QueueCustomerInsert

29、查询订单量在40--50间的用户名

select count(distinct orderid),uid from Orders group by uid  having count(distinct orderid) between 40 and 50

30、只查询显示前50个订单

Select top 50 orderid from Orders