【网学网提醒】:网学会员为您提供SQL经典38语句.sql参考,解决您在SQL经典38语句.sql学习中工作中的难题,参考学习。
--1. 查询公司目前的员工数量
--2. 查询公司中女性员工的数量
--3. 查询在公司工作超过20年的员工,职务,工资
--4. 统计公司不同年份入职员工的平均工资,最高工资以及人数
--5. 查询所有电话为6开头的客户信息。
--6. 按每个女性员工55岁男性员工60岁计算查询每个员工的,生日,入职时间以及他(她)的退休时间。
--7. 查询公司中男性员工所占比率
--8. 查询单价超过2000元,定货数量超过3件,总价值超过20000的商品名称
--9. 查询上海客户的数量
--10. 查询公司96年10月的销售记录
--11. 统计公司在不同城市的客户数量
--12. 按公司客户所在地来统计销售总额。
--13. 统计公司里所有干部的,职务,年龄并按照年龄排序
--14. 查询公司从96年8月开始单价超过2000块的采购单号和供应商
--15. 查询公司目前库存商品的名称和数量
--16. 查询公司采购金额超过10万的定单信息(包括定单号厂家商品名)
--17. 查询每个月公司的销售额
--18. 查询库存量前三名的产品名称
--19. 查询库存商品销售金额在第三到第六的供货商的信息
--20. 查询同一类型产品有两家以上供货商的产品编号以及供货商的数量
--21. 统计公司各种产品的销售金额(需要区分不同的厂家)
--22. 查询公司在96年10月的定单,计算每日定单金额,并按照定单金额排序
--23. 查询公司中王姓员工的信息
--24. 查询一笔销售记录中包含有两条明细记录的销售总帐记录
--25. 查询销售总表和销售明细表中不符合参照关系的数据(定单编号为参照字段)。
--26. 查询每个员工的工资以及应该交纳的个人所得税金额(40000以下不交,40000---499995%50000—599997%60000以上10%)
--27. 查询公司中所有有三个字的员工信息
--28. 生成公司销售的明细表要求表中需要表现的信息为(定单号,销售员,销售产品,供伙商名称,销售金额)
--29. 在采购明细表中查询同类产品在不同时间进货差价超过200元的产品及供货商名称
--30. 查询在同一天进入公司的员工信息
--31. 查询公司所有客户在公司的定货情况
--32. 查询由公司女业务员所接回的定单
--33. 查询公司中相同的员工并按照员工编号显示员工信息
--34. 查询公司中目前业绩还没有超过2万的业务员
--35. 查询仓库中还没有销售过的产品信息
--36. 查询公司员工的平均年龄
--37. 查询没有在公司订购产品的客户名单
--38. 按照供货商来统计公司的销售榜
----
--1.查询公司目前的员工数量
selectcount(emp_no)fromemployee
--2.查询公司中女性员工的数量
selectcount(emp_no)fromemployeewheresex='F'
--3.查询在公司工作超过20年的员工
,职务,工资
selectemp_name,title,salary,datediff(dd,date_hired,getdate())/365as入职年限fromemployee
wheredatediff(dd,date_hired,getdate())/365>20
--4.统计公司不同年份入职员工的平均公职,最高工资以及人数
selectyear(date_hired)入职年份,avg(salary)as平均工资,max(salary)as最高工资,count(emp_no)as数量fromemployee
groupbyyear(date_hired)
--5.查询所有电话为6开头的客户信息
select*fromcustomerwheretel_nolike'6_%'
--6.按每个女性员工55岁,男性员工60岁计算,
----查询每个员工的,生日,入职时间以及他(她)的退休时间
selectemp_name,birthday,date_hired,birthday+casesex
when'M'then60
when'F'then55
endas退休年龄
fromemployee
--7.查询公司中男性员工所占比例
select(selectcount(emp_no)fromemployeewheresex='M')
*1.0/
(selectcount(emp_no)fromemployee)
--8.查询单价超过2000元,定货数量超过3件,总价值超过20000的商品名称-------------------------------
select*fromproduct
select*frompur_item
selectprod_namefromproductjoinpur_item
onproduct.prod_id=pur_item.prod_id
whereunit_price>2000andqty>3andqty*unit_price>20000
groupbypur_item.prod_id
havingsum(qty*unit_price)>20000
--9.查询上海客户的数量
selectcount(*)fromcustomerwhereaddr='上海市'
--10.查询公司96年10月的销售记录--------------------------------------------
select*fromsale_itemwhereyear(order_date)=1996andmonth(order_date)=10
--11.统计公司在不同城市的客户数量
selectaddr,count(*)客户数fromcustomer
groupbyaddr
--12.按公司客户所在地来统计销售总额
select*fromcustomer
select*fromsales
selectaddr,sum(toa_amt)fromcustomerjoinsales
oncustomer.cus_id=sales.cus_id
groupbyaddr
--13.统计公司里所有干部的,职务,年龄并按照年龄排序
select*fromemployee
selectemp_name,title,dept,datediff(dd,birthday,getdate())/365asagefromemployeewheretitle<>'职员'
orderbyage
--14.查询公司从96年8月开始单价超过2000的采购订单和供应商
select*frompur_item
select*fromsupply
selectpur_no,sup_name,pur_datefrompur_itemjoinsupply
onpur_item.sup_id=supply.sup_id
whereyear(pur_date)>=1996andmonth(pur_date)>=08andunit_price>2000
--15. 查询公司目前库存商品的名称和数量
select*fromstock
select*fromproduct
selectprod_name,sum(stk_qty)fromstockjoinproduct
onstock.prod_id=product.prod_id
groupbyprod_name
--16. 查询公司采购金额超过10万的定单信息(包括定单号厂家商品名)----------------------
select*fromsupply
select*frompur_item
select*fromproduct
selectpur_nofromsupplyjoinpur_itemonsupply.sup_id=pur_item.sup_id
joinproductonpur_item.prod_id=product.prod_id
groupbypur_no
havingsum(qty*unit_price)>100000
--17. 查询每个
月公司的销售额-----------
select*fromsales
selectdatename(mm,order_date)+'月',sum(toa_amt)销售额fromsales
groupbydatename(mm,order_date)
--18. 查询库存量前三名的产品名称-----------------
select*fromstock
select*fromproduct
selecttop3prod_name,stk_qtyfromstockjoinproduct
onstock.prod_id=product.prod_id
groupby
orderbystk_qtydesc
--19. 查询(库存商品)销售金额在第三到第六的供货商的信息---------------------------------
select*fromstock
select*fromsupply
select*fromsale_item
selecttop4supply.*fromsupplyjoin(
selecttop6sale_item.sup_id,sum(qty*unit_price)sfromstockjoinsale_item
onstock.sup_id=sale_item.sup_id
groupbysale_item.sup_id
orderbysdesc)t
onsupply.sup_id=t.sup_id
orderbysasc
--20. 查询同一类型产品有两家以上供货商的产品编号以及供货商的数量-------***------
select*fromproduct
select*fromsupply
select*frompur_item
selectprod_id,count(pur_item.sup_id)供货商数量fromsupplyjoinpur_item
onsupply.sup_id=pur_item.sup_id
groupbyprod_id
havingcount(pur_item.sup_id)>=2
--21. 统计公司各种产品的销售金额(需要区分不同的厂家)-----------------7------------
select*fromproduct
select*fromsale_item
select*fromsupply
selectprod_name,unit_price,sup_namefromproductjoinsale_item
onproduct.prod_id=sale_item.prod_id
joinsupplyonsale_item.sup_id=supply.sup_id
--22. 查询公司在96年10月的定单,计算每日定单金额,并按照定单金额排序------
select*fromsale_item
selectday(order_date),sum(qty*unit_price)fromsale_item
wheredatepart(yy,order_date)=1996anddatepart(mm,order_date)=10
groupbyday(order_date)
orderbysum(qty*unit_price)
--23. 查询公司中王姓员工的信息
select*fromemployeewhereemp_namelike'王_%'
--24. 查询一笔销售记录中包含有两条明细记录的销售总帐记录
select*fromsale_item
selectorder_no订单号,count(prod_id)明细数fromsale_item
groupbyorder_no
havingcount(prod_id)=2
--25. 查询销售总表和销售明细表中不符合参照关系的数据(定单编号为参照字段)。
selectsales.order_nofromsales
except
selectsale_item.order_nofromsale_item
--26. 查询每个员工的工资以及应该交纳的个人所得税金额(40000以下不交,40000---499995%50000—599997%60000以上10%)
selectemp_name,salary,salary*case
whensalary<40000then0
whensalarybetween40000and49999then0.05
whensalarybetween50000and59999then0.07
else0.1
end
fromemployee
--27. 查询公司中所有有三个字的员工信息
select*fromemployeewherelen(replace(emp_name,'',''))=3
--28. 生成公司销售的明细表要求表中需要表现的信息为(定单号,销售员,销售产品,供伙商名称,销售金额)
sel
ectorder_no,emp_name,prod_name,sup_name,unit_pricefromemployeejoin
--29. 在采购明细表中查询同类产品在不同时间进货差价超过200元的产品及供货商名称
selectpur_item
--30. 查询在同一天进入公司的员工信息
selecta.emp_name,b.emp_name,a.date_hired入职时间from
employeeajoinemployeeb
ona.emp_no>b.emp_noanda.date_hired=b.date_hired
--31. 查询公司所有客户在公司的定货情况
select*fromcustomerleftjoinsales
oncustomer.cus_id=sales.cus_id
--32. 查询由公司女业务员所接回的定单
select*fromsales
select*fromemployee
selectemp_name,sales.*fromemployeejoinsales
onemployee.emp_no=sales.sale_id
wheresex='F'
--33. 查询公司中相同的员工并按照员工编号显示员工信息
selecta.emp_name,b.emp_namefromemployeea
joinemployeeb
ona.emp_name=b.emp_nameanda.emp_no>b.emp_no
--34. 查询公司中目前业绩还没有超过2万的业务员
select*fromemployee
select*fromsales
selectemp_name,sum(toa_amt)fromemployeeleftjoinsales
onemployee.emp_no=sales.sale_id
wheredept='业务'
groupbyemp_name
havingisnull(sum(toa_amt),0)<20000
--35. 查询仓库中还没有销售过的产品信息
select*fromstock
select*fromsale_item
selectstock.prod_id,sale_item.*fromstock
leftjoinsale_itemonstock.prod_id=sale_item.prod_id
whereorder_noisnull
--36. 查询公司员工的平均年龄
select*fromemployee
selectavg(datediff(dd,birthday,getdate())/365)fromemployee
--37. 查询没有在公司订购产品的客户名单
select*fromcustomer
select*fromsales
selectcus_name,sales.*fromsales
rightjoincustomeroncustomer.cus_id=sales.cus_id
whereorder_noisnull
--38. 按照供货商来统计公司的销售榜
select*fromsupply
select*fromsale_item
selectsup_name,sum(qty*unit_price)afromsale_item
rightjoinsupplyonsale_item.sup_id=supply.sup_id
groupbysup_name
orderbyadesc