当前位置: 代码迷 >> Sql Server >> 多条查询结果归拢,求大神指点迷津
  详细解决方案

多条查询结果归拢,求大神指点迷津

热度:29   发布时间:2016-04-24 10:30:31.0
多条查询结果合并,求大神指点迷津
本帖最后由 u011937801 于 2014-06-23 16:54:13 编辑
 现在有两张表 ServicePay(订购表) ServiceCancel(退订表), 两张表数据类型
 ServicePay:
   opendate datetime--营销时间
   PayNum nvarchar(20)--号码
   UpLoadDate datetime--计费时间
   ServiceCancel:
   Order_OpenDate datetime--营销时间
   Order_PayNum nvarchar(20)--号码
   Order_UpLoadDate datetime--计费时间
   CancelDate datetime--退订时间
现在要求统计三个结果,如表格所示

月份就是指的营销时间,发展用户就是比如1月发展用户就是两张表,营销时间在一月内的总数,中间要统计的三天内,1个月内要统计的总数为:单独ServiceCancel 表中 CancelDate 时间减去Order_OpenDate产生 的天数,满足其中一个的就归为一类 三个类别的数量加起来要等于总退订数,简单就是总退订数拆分成三种情况,
后面的总退订数,为每个月营销的退订数量,如营销时间为一月的,ServiceCancel  的总数 即:select count(*) from ServiceCancel where Order_OpenDate >='2014-1-1'and Order_OpenDate<'2014-2-1'
有大神能给个范例吗。直接查询得出如表格所示的格式,万分感谢。
------解决方案--------------------
用group by datepart(m,opendate)分组,然后分字段统计所需的结果..
------解决方案--------------------
引用:
那中间的 三种情况呢 这个应该要用到 case when 吧。

1.发展用户数一句子查询
2.小于3天退订用户数一句子查询
3.大于3天小于1个月退订用户数一句子查询
4.大于1个月退订用户数一句子查询
最后用月份相关联,退订总数 = 2,3,4这三个子查询数量相加