
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)
--