SQL server查询笔记

select datepart(year,createtime) as [year],count(o.Teacherid) as teachernum from rrs_client c left join rrs_order__ o on c.clientid = o.clientid where between YEAR(createtime)='2017' and YEAR(createtime)='2013' and c.deleted=0 and o.deleted=0 and o.clientid ='24965'    group by datepart(year,createtime)

//根据年份分组 查询 
datepart(year,createtime)
group by datepart(year,createtime)
//year 年 week周 month 月 quarter 季度
ORDER BY CONVERT(INT,DATENAME(week,AddDate));

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据。

GETDATE() 函数来获得当前的日期/时间:

 
//求分组后数量的最大值
sum(sum) as [aa]
order by aa desc
 
//求求和数量的指定范围
sum(money)
having sum(money)>0
 
//就算两个日期的查(天,小时,,分 秒)
datediff(DAY,'','') as diff
第一个时间跟第二个时间相差多少
//month 月 day 天 hour 小时 minute 分钟  second 秒
isnull(o.endtime, c.createddate)  
判断前一个值是不是为空 是的话就用后面一个值填上空缺
GETDATE()当前时间
CONVERT(VARCHAR(20),DATEADD(SECOND,deleted,'1970-01-01 00:00:00'),120)
时间戳转日期
 
 
//常用连表统计
select 表一.部门名称 as 部门,count(表二.id)as 人数
from 表一
left join 表二 on 表一id=表二.部门id
group by 表一.部门名称
--一天内:
select * from tbl where convert(varchar(10),posttime,120) = '2010-04-03'
--一周内:
select * from tbl where datedepart(dw,posttime) = datedepart(dw,'2010-04-03')
--一月内
select * from tbl where convert(varchar(7),posttime,120) = '2010-04'

根据 金额范围分组

SELECT

         o.clientid,

         o.Inchargeuserid AS userid,

         SUM (totalmoney) AS money,

         o.totalday,

         o.createtime,

         datepart(YEAR, o.createtime) AS [year],

         datepart(MONTH, o.createtime) AS [month],

         datepart(DAY, o.createtime) AS [day],

         CASE

WHEN SUM (totalmoney) >= 500000 THEN

         '50万以上'

WHEN SUM (totalmoney) >= 200000

AND SUM (totalmoney) < 500000 THEN

         '20-50万'

WHEN SUM (totalmoney) >= 100000

AND SUM (totalmoney) < 200000 THEN

         '10-20万'

WHEN SUM (totalmoney) >= 50000

AND SUM (totalmoney) < 100000 THEN

         '5-10万'

WHEN SUM (totalmoney) >= 20000

AND SUM (totalmoney) < 50000 THEN

         '2-5万'

ELSE

         '2万以下'

END AS leval

FROM

         rrs_order o

WHERE

         o.otype = 'D'

AND o.deleted = 0

AND o.status = 1

GROUP BY

         o.itemname,

         o.clientid,

         o.Inchargeuserid,

         o.totalday,

         o.createtime

结果:

猜你喜欢

转载自www.cnblogs.com/930115586qq/p/9488752.html