INSERT into T_call(Callnumber,tellnum,startdatetime,enddatetime) VALUES('13925473495','GZSX009','2013-10-20 10:03','2013-10-22 13:06') --输出所有数据中通话时间最长的5条记录。用orderby datediff select top 5 * from T_call order by datediff(second,StartDateTime,Enddatetime) desc --输出所有数据中拨打长途电话的总时长。(0开头为长途) like,sum SELECT SUM(DATEDIFF(second, startdatetime, enddatetime))as '长途通话时长' from T_call where callnumber LIKE '0%' --输出本月通话总时长最多的前三呼叫员的编号 --datediff(month..)=0表示本月 SELECT top 3 TellNum from T_call WHERE DATEDIFF(MONTH, startdatetime, GETDATE())=0 GROUP BY TellNum ORDER BY SUM(DATEDIFF(SECOND, startdatetime, enddatetime)) DESC --输出本月拨打电话次数最多的前三个呼叫员的编号 SELECT TOP 3 tellnum,COUNT(*) as N'通话次数' FROM T_call WHERE DATEDIFF(MONTH, startdatetime, enddatetime)=0 GROUP BY tellnum ORDER BY 通话次数 DESC --输出所有数据的拨号流水,并且在最后一行添加呼叫总时长 SELECT tellnum,callnumber,DATEDIFF(SECOND, startdatetime, enddatetime) as 通话时长 FROM T_call UNION ALL SELECT N'汇总', CONVERT(nvarchar(50), SUM(( CASE WHEN callnumber LIKE '0%' then DATEDIFF(SECOND, startdatetime, enddatetime) ELSE 0 END ))), SUM(( CASE when callnumber not like '0%' then DATEDIFF(SECOND, startdatetime, enddatetime) ELSE 0 END)) from T_call where DATEDIFF(MONTH, startdatetime, enddatetime)=0 --计费表jifei --查找6,7,8,月份有话费产生,但是9,10月份没有使用,并且6,7,8话费均在51-100之间 SELECT DISTINCT phone from jifei WHERE phone in (SELECT phone from jifei where months in (6,7,8)and expense BETWEEN 51 and 100) and phone not in (SELECT phone from jifei WHERE months in(10,11) and expense=0) --