100分,问题请点击看内容,有点复杂!!

wang520d 2009-06-02 11:44:56
一个SQL统计
描述:根据选择的时间段统计结果,当时间段跨年结果集行数以年为单位显示,跨月以月为单位显示,跨分以分为单位显示,考虑顺序为:年》月》日》时》分!
数据表:
1、电话记录表(产品数量有N个N可能大于100)
产品代码 数据期间 接听状态(0呼入2呼出3漏接)
-------------------------------------------------- ----------------------- --------------------------------------------------
妈咪乐 2007-06-01 09:20:05.453 0
热水瓶 2007-06-01 14:11:33.767 3
妈咪乐 2007-06-01 14:42:34.077 2

热水瓶 2008-06-01 14:50:51.323 2
妈咪乐 2008-06-01 14:51:00.157 3
妈咪乐 2008-06-02 14:54:22.173 3
热水瓶 2008-06-02 14:55:19.377 2

妈咪乐 2009-05-01 14:57:09.500 2
热水瓶 2009-05-01 15:20:28.750 2
妈咪乐 2009-06-02 15:28:44.843 2
妈咪乐 2009-06-01 15:39:48.900 2
妈咪乐 2009-06-02 09:42:48.643 0
第一种情况查询时间选择为跨年:2007-08-09 10:22:22到2009-06-02 10:28:22)
统计结果如:
产品代码 数据期间 呼入电话量(接听状态=0和2) 已接电话(接听状态=0) 未接电话(接听状态=3) 回呼电话量(接听状态=2)
妈咪乐 2007年 2 1 0 1
妈咪乐 2008年 0 0 2 0
妈咪乐 2009年 4 1 0 3
热水瓶 2007年 0 0 1 0
热水瓶 2008年 2 0 0 2
热水瓶 2009年 1 0 0 1

第二种情况查询时间选择为跨月:2009-05-09 10:22:22到2009-06-02 10:28:22)
统计结果如:
产品代码 数据期间 呼入电话量(接听状态=0和2) 已接电话(接听状态=0) 未接电话(接听状态=3) 回呼电话量(接听状态=2)
妈咪乐 2009-05 1 0 0 1
妈咪乐 2009-06 3 1 0 2
热水瓶 2009-05 1 0 0 1
热水瓶 2009-06 0 0 0 0

第三种情况查询时间选择为跨日:2008-06-01 10:22:22到2009-06-02 10:28:22)
统计结果如:
产品代码 数据期间 呼入电话量(接听状态=0和2) 已接电话(接听状态=0) 未接电话(接听状态=3) 回呼电话量(接听状态=2)
妈咪乐 2008-06-01 0 0 1 0
妈咪乐 2008-06-02 0 0 1 0
热水瓶 2008-06-01 1 0 0 1
热水瓶 2008-06-02 1 0 0 1

第四种情况查询时间选择为跨时:2009-05-01 14:00:00到2009-05-01 15:23:59)
统计结果如:
产品代码 数据期间 呼入电话量(接听状态=0和2) 已接电话(接听状态=0) 未接电话(接听状态=3) 回呼电话量(接听状态=2)
妈咪乐 2009-05-01 14:00:00 1 0 0 1
妈咪乐 2009-05-01 15:00:00 0 0 0 0
热水瓶 2009-05-01 14:00:00 0 0 0 0
热水瓶 2009-05-01 15:00:00 1 0 0 1

第五种情况查询时间选择为跨分:2008-06-01 14:50:00到2008-06-01 14:51:59)
统计结果如:
产品代码 数据期间 呼入电话量(接听状态=0和2) 已接电话(接听状态=0) 未接电话(接听状态=3) 回呼电话量(接听状态=2)
妈咪乐 2008-06-01 14:50 1 0 0 1
妈咪乐 2008-06-01 15:51 0 0 0 0
热水瓶 2008-06-01 14:50 0 0 0 0
热水瓶 2008-06-01 15:51 0 0 1 0

...全文
233 37 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaJiaBing 2009-06-02
  • 打赏
  • 举报
回复

declare @tb table (产品代码 varchar(10),数据期间 datetime,接听状态 int)
insert into @tb select '妈咪乐','2007-06-01 09:20:05.453',0
union all select '热水瓶','2007-06-01 14:11:33.767',3
union all select '妈咪乐','2007-06-01 14:42:34.077',2
union all select '热水瓶','2008-06-01 14:50:51.323',2
union all select '妈咪乐','2008-06-01 14:51:00.157',3
union all select '妈咪乐','2008-06-02 14:54:22.173',3
union all select '热水瓶','2008-06-02 14:55:19.377',2
union all select '妈咪乐','2009-05-01 14:57:09.500',2
union all select '热水瓶','2009-05-01 15:20:28.750',2
union all select '妈咪乐','2009-06-02 15:28:44.843',2
union all select '妈咪乐','2009-06-01 15:39:48.900',2
union all select '妈咪乐','2009-06-02 09:42:48.643',0
----跨年
select 产品代码,数据期间=year(数据期间),呼入电话量= isnull(sum(case when 接听状态 IN(0,2) then 1 end),0),
已接电话= isnull(sum(case when 接听状态=0 then 1 end),0),未接电话= isnull(SUM( case when 接听状态=3 then 1 end),0),
回呼电话量= isnull(sum(case when 接听状态=2 then 1 end),0) from @tb
group by 产品代码,YEAR(数据期间) order by 产品代码
---跨月
select 产品代码,数据期间=convert(nvarchar(7),数据期间,120),呼入电话量= isnull(sum(case when 接听状态 IN(0,2) then 1 end),0),
已接电话= isnull(sum(case when 接听状态=0 then 1 end),0),未接电话= isnull(SUM( case when 接听状态=3 then 1 end),0),
回呼电话量= isnull(sum(case when 接听状态=2 then 1 end),0) from @tb
group by 产品代码,convert(nvarchar(7),数据期间,120) order by 产品代码
--跨日
select 产品代码,数据期间=convert(nvarchar(10),数据期间,120),呼入电话量= isnull(sum(case when 接听状态 IN(0,2) then 1 end),0),
已接电话= isnull(sum(case when 接听状态=0 then 1 end),0),未接电话= isnull(SUM( case when 接听状态=3 then 1 end),0),
回呼电话量= isnull(sum(case when 接听状态=2 then 1 end),0) from @tb
group by 产品代码,convert(nvarchar(10),数据期间,120) order by 产品代码
--按时
select 产品代码,数据期间=convert(nvarchar(13),数据期间,120),呼入电话量= isnull(sum(case when 接听状态 IN(0,2) then 1 end),0),
已接电话= isnull(sum(case when 接听状态=0 then 1 end),0),未接电话= isnull(SUM( case when 接听状态=3 then 1 end),0),
回呼电话量= isnull(sum(case when 接听状态=2 then 1 end),0) from @tb
group by 产品代码,convert(nvarchar(13),数据期间,120) order by 产品代码
--按分
select 产品代码,数据期间=convert(nvarchar(16),数据期间,120),呼入电话量= isnull(sum(case when 接听状态 IN(0,2) then 1 end),0),
已接电话= isnull(sum(case when 接听状态=0 then 1 end),0),未接电话= isnull(SUM( case when 接听状态=3 then 1 end),0),
回呼电话量= isnull(sum(case when 接听状态=2 then 1 end),0) from @tb
group by 产品代码,convert(nvarchar(16),数据期间,120) order by 产品代码



(12 行受影响)
产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---------- ----------- ----------- ----------- ----------- -----------
妈咪乐 2007 2 1 0 1
妈咪乐 2008 0 0 2 0
妈咪乐 2009 4 1 0 3
热水瓶 2007 0 0 1 0
热水瓶 2008 2 0 0 2
热水瓶 2009 1 0 0 1
警告: 聚合或其他 SET 操作消除了 Null 值。

(6 行受影响)

产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---------- ------- ----------- ----------- ----------- -----------
妈咪乐 2007-06 2 1 0 1
妈咪乐 2008-06 0 0 2 0
妈咪乐 2009-05 1 0 0 1
妈咪乐 2009-06 3 1 0 2
热水瓶 2007-06 0 0 1 0
热水瓶 2008-06 2 0 0 2
热水瓶 2009-05 1 0 0 1
警告: 聚合或其他 SET 操作消除了 Null 值。

(7 行受影响)

产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---------- ---------- ----------- ----------- ----------- -----------
妈咪乐 2007-06-01 2 1 0 1
妈咪乐 2008-06-01 0 0 1 0
妈咪乐 2008-06-02 0 0 1 0
妈咪乐 2009-05-01 1 0 0 1
妈咪乐 2009-06-01 1 0 0 1
妈咪乐 2009-06-02 2 1 0 1
热水瓶 2007-06-01 0 0 1 0
热水瓶 2008-06-01 1 0 0 1
热水瓶 2008-06-02 1 0 0 1
热水瓶 2009-05-01 1 0 0 1
警告: 聚合或其他 SET 操作消除了 Null 值。

(10 行受影响)

产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---------- ------------- ----------- ----------- ----------- -----------
妈咪乐 2007-06-01 09 1 1 0 0
妈咪乐 2007-06-01 14 1 0 0 1
妈咪乐 2008-06-01 14 0 0 1 0
妈咪乐 2008-06-02 14 0 0 1 0
妈咪乐 2009-05-01 14 1 0 0 1
妈咪乐 2009-06-01 15 1 0 0 1
妈咪乐 2009-06-02 09 1 1 0 0
妈咪乐 2009-06-02 15 1 0 0 1
热水瓶 2007-06-01 14 0 0 1 0
热水瓶 2008-06-01 14 1 0 0 1
热水瓶 2008-06-02 14 1 0 0 1
热水瓶 2009-05-01 15 1 0 0 1
警告: 聚合或其他 SET 操作消除了 Null 值。

(12 行受影响)

产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---------- ---------------- ----------- ----------- ----------- -----------
妈咪乐 2007-06-01 09:20 1 1 0 0
妈咪乐 2007-06-01 14:42 1 0 0 1
妈咪乐 2008-06-01 14:51 0 0 1 0
妈咪乐 2008-06-02 14:54 0 0 1 0
妈咪乐 2009-05-01 14:57 1 0 0 1
妈咪乐 2009-06-01 15:39 1 0 0 1
妈咪乐 2009-06-02 09:42 1 1 0 0
妈咪乐 2009-06-02 15:28 1 0 0 1
热水瓶 2007-06-01 14:11 0 0 1 0
热水瓶 2008-06-01 14:50 1 0 0 1
热水瓶 2008-06-02 14:55 1 0 0 1
热水瓶 2009-05-01 15:20 1 0 0 1
警告: 聚合或其他 SET 操作消除了 Null 值。

(12 行受影响)



shenzhenNBA 2009-06-02
  • 打赏
  • 举报
回复
o....前面漏了一个,都加上 “产品代码”,前面修改为: select 产品代码 ...

呵呵...
  • 打赏
  • 举报
回复
修改时间段不用改程序了,修改两个参数@Start和@End即可。
  • 打赏
  • 举报
回复
产品代码       数据期间                       呼入电话量       已接电话        未接电话        回呼电话量
---------- -------------------------- ----------- ----------- ----------- -----------
妈咪乐 2007 2 0 0 1
热水瓶 2007 0 0 1 0
妈咪乐 2008 0 0 2 0
热水瓶 2008 2 0 0 2
妈咪乐 2009 4 0 0 3
热水瓶 2009 1 0 0 1
  • 打赏
  • 举报
回复

CREATE TABLE TAB(产品代码 varchar(10),数据期间 datetime,接听状态 char(1))
insert TAB
select '妈咪乐','2007-06-01 09:20:05.453','0' union all
select'热水瓶','2007-06-01 14:11:33.767','3' union all
select'妈咪乐','2007-06-01 14:42:34.077','2' union all
select'热水瓶','2008-06-01 14:50:51.323','2' union all
select'妈咪乐','2008-06-01 14:51:00.157','3' union all
select'妈咪乐','2008-06-02 14:54:22.173','3' union all
select'热水瓶','2008-06-02 14:55:19.377','2' union all
select'妈咪乐','2009-05-01 14:57:09.500','2' union all
select'热水瓶','2009-05-01 15:20:28.750','2' union all
select'妈咪乐','2009-06-02 15:28:44.843','2' union all
select'妈咪乐','2009-06-01 15:39:48.900','2' union all
select'妈咪乐','2009-06-02 09:42:48.643','0'


DECLARE @Start DATETIME
DECLARE @End DATETIME
SET @Start='2007-08-09 10:22:22'
SET @End='2009-06-02 10:28:22'
SELECT 产品代码,
CASE WHEN DATEDIFF(yy,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),4)
ELSE (CASE WHEN DATEDIFF(mm,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),7)
ELSE (CASE WHEN DATEDIFF(dd,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),10)
ELSE (CASE WHEN DATEDIFF(mm,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),13)+':00:00'
ELSE (CASE WHEN DATEDIFF(mm,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),16)+':00' END)END) END) END)
END AS 数据期间
,ISNULL(SUM(CASE WHEN 接听状态='0' OR 接听状态='2' THEN 1 END),'') AS 呼入电话量
,ISNULL(SUM(CASE WHEN 接听状态='1' THEN 1 END),'') AS 已接电话
,ISNULL(SUM(CASE WHEN 接听状态='3' THEN 1 END),'') AS 未接电话
,ISNULL(SUM(CASE WHEN 接听状态='2' THEN 1 END),'') AS 回呼电话量
FROM TAB
GROUP BY 产品代码,
CASE WHEN DATEDIFF(yy,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),4)
ELSE (CASE WHEN DATEDIFF(mm,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),7)
ELSE (CASE WHEN DATEDIFF(dd,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),10)
ELSE (CASE WHEN DATEDIFF(mm,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),13)+':00:00'
ELSE (CASE WHEN DATEDIFF(mm,@Start,@End)>0 THEN LEFT(CONVERT(VARCHAR(20),数据期间,120),16)+':00' END)END) END) END)
END
DROP TABLE TAB
shenzhenNBA 2009-06-02
  • 打赏
  • 举报
回复
--跨时
select year([数据期间])+'-'+month([数据期间])+'-'+day([数据期间])+' '+datename(hh,[数据期间])+':00:00' as [数据期间],
sum(case when [接听状态]=0 or [接听状态]=2 then 1 else 0 end) as [呼入电话量],
sum(case when [接听状态]=0 then 1 else 0 end) as [已接电话],
sum(case when [接听状态]=3 then 1 else 0 end) as [未接电话],
sum(case when [接听状态]=2 then 1 else 0 end) as [回呼电话量]
from 电话记录表 group by 产品代码 order by [数据期间] asc

--跨分
select year([数据期间])+'-'+month([数据期间])+'-'+day([数据期间])+' '+datename(hh,[数据期间])+':'+datename(mi,[数据期间])+':00' as [数据期间],
sum(case when [接听状态]=0 or [接听状态]=2 then 1 else 0 end) as [呼入电话量],
sum(case when [接听状态]=0 then 1 else 0 end) as [已接电话],
sum(case when [接听状态]=3 then 1 else 0 end) as [未接电话],
sum(case when [接听状态]=2 then 1 else 0 end) as [回呼电话量]
from 电话记录表 group by 产品代码 order by [数据期间] asc

shenzhenNBA 2009-06-02
  • 打赏
  • 举报
回复
--跨年
select year([数据期间]) as [数据期间],
sum(case when [接听状态]=0 or [接听状态]=2 then 1 else 0 end) as [呼入电话量],
sum(case when [接听状态]=0 then 1 else 0 end) as [已接电话],
sum(case when [接听状态]=3 then 1 else 0 end) as [未接电话],
sum(case when [接听状态]=2 then 1 else 0 end) as [回呼电话量]
from 电话记录表 group by 产品代码 order by [数据期间] asc
shenzhenNBA 2009-06-02
  • 打赏
  • 举报
回复
用程序判断时间之后,再:

--跨年
select year([数据期间]) as [数据期间],
sum(case when [接听状态]=0 and [接听状态]=2 then 1 else 0 end) as [呼入电话量],
sum(case when [接听状态]=0 then 1 else 0 end) as [已接电话],
sum(case when [接听状态]=3 then 1 else 0 end) as [未接电话],
sum(case when [接听状态]=2 then 1 else 0 end) as [回呼电话量]
from 电话记录表 group by 产品代码 order by [数据期间] asc


--跨月
select year([数据期间])+'-'+month([数据期间]) as [数据期间],
sum(case when [接听状态]=0 and [接听状态]=2 then 1 else 0 end) as [呼入电话量],
sum(case when [接听状态]=0 then 1 else 0 end) as [已接电话],
sum(case when [接听状态]=3 then 1 else 0 end) as [未接电话],
sum(case when [接听状态]=2 then 1 else 0 end) as [回呼电话量]
from 电话记录表 group by 产品代码 order by [数据期间] asc

--跨日
select year([数据期间])+'-'+month([数据期间])+'-'+day([数据期间]) as [数据期间],
sum(case when [接听状态]=0 and [接听状态]=2 then 1 else 0 end) as [呼入电话量],
sum(case when [接听状态]=0 then 1 else 0 end) as [已接电话],
sum(case when [接听状态]=3 then 1 else 0 end) as [未接电话],
sum(case when [接听状态]=2 then 1 else 0 end) as [回呼电话量]
from 电话记录表 group by 产品代码 order by [数据期间] asc

--跨时
...方法好象一样,呵呵
csdyyr 2009-06-02
  • 打赏
  • 举报
回复
--3
GROUP BY 产品代码,CONVERT(VARCHAR(13),数据期间,120)
--4
GROUP BY 产品代码,CONVERT(VARCHAR(16),数据期间,120)
www8523 2009-06-02
  • 打赏
  • 举报
回复
顶一下!
playwarcraft 2009-06-02
  • 打赏
  • 举报
回复
还有个问题LZ没说清楚,
假如

第二种情况查询时间选择为跨月:2009-05-09 10:22:22到2009-06-02 10:28:22)
统计结果如:
产品代码 数据期间 呼入电话量(接听状态=0和2) 已接电话(接听状态=0) 未接电话(接听状态=3) 回呼电话量(接听状态=2)
妈咪乐 2009-05 1 0 0 1
妈咪乐 2009-06 3 1 0 2
热水瓶 2009-05 1 0 0 1
热水瓶 2009-06 0 0 0 0


此时,选定的是5/9 ~ 6/2
统计的是5月和6月,那么针对 5/1~5/8的资料,6/3~6/30的资料,是否需要统计进去?
csdyyr 2009-06-02
  • 打赏
  • 举报
回复
依次类推。。。
sdhdy 2009-06-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sdhdy 的回复:]
SQL code--很简单,给你第一个结果,其他的类似。
select 产品代码,year(数据期间)+'年',
呼入电话量=sum(case when 接听状态=0 or 接听状态=2 then 1 else 0 end),
已接电话=sum(case when 接听状态=0 then 1 else 0 end),
未接电话=sum(case when 接听状态=3 then 1 else 0 end),
回呼电话量=sum(case when 接听状态=3 then 1 else 0 end)
from 电话记录表
where 数据期间 between '2007-08-09 10:22:22' and '2009-06…
[/Quote]
这个有点小问题,得把year(数据期间)改为ltrim(year(数据期间)),不转换的话会报错的。
csdyyr 2009-06-02
  • 打赏
  • 举报
回复
DECLARE @TB TABLE([产品代码] NVARCHAR(3), [数据期间] DATETIME, [接听状态] INT)
INSERT @TB
SELECT N'妈咪乐', '2007-06-01 09:20:05.453', 0 UNION ALL
SELECT N'热水瓶', '2007-06-01 14:11:33.767', 3 UNION ALL
SELECT N'妈咪乐', '2007-06-01 14:42:34.077', 2 UNION ALL
SELECT N'热水瓶', '2008-06-01 14:50:51.323', 2 UNION ALL
SELECT N'妈咪乐', '2008-06-01 14:51:00.157', 3 UNION ALL
SELECT N'妈咪乐', '2008-06-02 14:54:22.173', 3 UNION ALL
SELECT N'热水瓶', '2008-06-02 14:55:19.377', 2 UNION ALL
SELECT N'妈咪乐', '2009-05-01 14:57:09.500', 2 UNION ALL
SELECT N'热水瓶', '2009-05-01 15:20:28.750', 2 UNION ALL
SELECT N'妈咪乐', '2009-06-02 15:28:44.843', 2 UNION ALL
SELECT N'妈咪乐', '2009-06-01 15:39:48.900', 2 UNION ALL
SELECT N'妈咪乐', '2009-06-02 09:42:48.643', 0

--1
SELECT 产品代码,
YEAR(数据期间) AS 数据期间,
SUM(CASE WHEN [接听状态] IN (0,2) THEN 1 ELSE 0 END) AS [呼入电话量],
SUM(CASE WHEN [接听状态]=0 THEN 1 ELSE 0 END) AS [已接电话],
SUM(CASE WHEN [接听状态]=3 THEN 1 ELSE 0 END) AS [未接电话],
SUM(CASE WHEN [接听状态]=2 THEN 1 ELSE 0 END) AS [回呼电话量]
FROM @TB
GROUP BY 产品代码,YEAR(数据期间)
/*
产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---- ----------- ----------- ----------- ----------- -----------
妈咪乐 2007 2 1 0 1
热水瓶 2007 0 0 1 0
妈咪乐 2008 0 0 2 0
热水瓶 2008 2 0 0 2
妈咪乐 2009 4 1 0 3
热水瓶 2009 1 0 0 1
*/

--2
SELECT 产品代码,
CONVERT(VARCHAR(7),数据期间,120) AS 数据期间,
SUM(CASE WHEN [接听状态] IN (0,2) THEN 1 ELSE 0 END) AS [呼入电话量],
SUM(CASE WHEN [接听状态]=0 THEN 1 ELSE 0 END) AS [已接电话],
SUM(CASE WHEN [接听状态]=3 THEN 1 ELSE 0 END) AS [未接电话],
SUM(CASE WHEN [接听状态]=2 THEN 1 ELSE 0 END) AS [回呼电话量]
FROM @TB
GROUP BY 产品代码,CONVERT(VARCHAR(7),数据期间,120)
/*
产品代码 数据期间 呼入电话量 已接电话 未接电话 回呼电话量
---- ------- ----------- ----------- ----------- -----------
妈咪乐 2007-06 2 1 0 1
热水瓶 2007-06 0 0 1 0
妈咪乐 2008-06 0 0 2 0
热水瓶 2008-06 2 0 0 2
妈咪乐 2009-05 1 0 0 1
热水瓶 2009-05 1 0 0 1
妈咪乐 2009-06 3 1 0 2
*/
sdhdy 2009-06-02
  • 打赏
  • 举报
回复
--modify
select 产品代码,ltrim(year(数据期间))+'年',
呼入电话量=sum(case when 接听状态=0 or 接听状态=2 then 1 else 0 end),
已接电话=sum(case when 接听状态=0 then 1 else 0 end),
未接电话=sum(case when 接听状态=3 then 1 else 0 end),
回呼电话量=sum(case when 接听状态=3 then 1 else 0 end)
from 电话记录表
where 数据期间 between '2007-08-09 10:22:22' and '2009-06-02 10:28:22'
group by 产品代码 ,year(数据期间)
order by 产品代码 ,year(数据期间)
sdhdy 2009-06-02
  • 打赏
  • 举报
回复
--很简单,给你第一个结果,其他的类似。
select 产品代码,year(数据期间)+'年',
呼入电话量=sum(case when 接听状态=0 or 接听状态=2 then 1 else 0 end),
已接电话=sum(case when 接听状态=0 then 1 else 0 end),
未接电话=sum(case when 接听状态=3 then 1 else 0 end),
回呼电话量=sum(case when 接听状态=3 then 1 else 0 end)
from 电话记录表
where 数据期间 between '2007-08-09 10:22:22' and '2009-06-02 10:28:22'
group by 产品代码 ,year(数据期间)
order by 产品代码 ,year(数据期间)
ai_li7758521 2009-06-02
  • 打赏
  • 举报
回复
恩,同意乳哥。先判断给定时间段,然后分组统计即可。
  • 打赏
  • 举报
回复
其实很简单的问题,我吃饭回来。等我一下。
wang520d 2009-06-02
  • 打赏
  • 举报
回复
先吃饭去了。。。待会回来跟帖。。。
加载更多回复(17)

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧