当前位置: 代码迷 >> Sql Server >> 请高手帮忙修改一条SQL语句解决方案
  详细解决方案

请高手帮忙修改一条SQL语句解决方案

热度:67   发布时间:2016-04-27 14:34:29.0
请高手帮忙修改一条SQL语句
SQL code
SELECT ProjectID,convert(varchar(10),[Time],120) as 日期,count(ID) as 预约量,到诊数量=sum(case when PatientStatus='复诊' or PatientStatus='初诊' then 1 else 0 end)  FROM Orders group by convert(varchar(10),[Time],120),ProjectID


这条sql语句呈现的的样子如下:
HTML code
   日期        点击量    对话量     有效对话量    预约量         实际到诊量 2012-1-1      1000       200         50            40               10  2012-1-2      2000       700         40            30               8 2012-1-3      3000       500         20            10               7


现在我要在统计中再添加一列 名字叫做“该日历史预约总和”。
“该日历史预约总和”的含义就是Orders表中OrderTime列的值为上面呈现样子中相对应的日期的值。
举个例子,我实际最终想呈现出的样子如下->
HTML code
   日期        点击量    对话量     有效对话量    预约量     该日历史预约总和    实际到诊量 2012-1-1      1000       200         50            40          100           10  2012-1-2      2000       700         40            30          200           8 2012-1-3      3000       500         20            10          300           7


再用一个sql语句解释一下您可能更清楚我的意思,大概的sql语句如下(注意第三行,我肯定是写错了,应该怎么写呢?)->
SQL code
SELECT ProjectID,convert(varchar(10),[Time],120) as 日期,count(ID) as 预约量,到诊数量=sum(case when PatientStatus='复诊' or PatientStatus='初诊' then 1 else 0 end)该日历史预约总和 = sum(case when convert(varchar(10),[OrderTime],120)=convert(varchar(10),[Time],120) then 1 else 0 end)  FROM Orders group by convert(varchar(10),[Time],120),ProjectID


不知道一条sql语句能否实现我要的功能!!感谢回答!!

------解决方案--------------------
直接把表结构给出来,帮你看
------解决方案--------------------
貌似明白了,该日历史预约不区分projectid?

SQL code
select a.*,b.该日历史预约总和 from (    select         projectid,        convert(varchar(10),[time],120) as 日期,        count(id) as 预约量,        到诊数量=sum(case when patientstatus='复诊' or patientstatus='初诊' then 1 else 0 end)    from orders     group by convert(varchar(10),[time],120),projectid) aleft join(    select         convert(varchar(10),[time],120) as 日期,         count(1) as 该日历史预约总和    from orders     convert(varchar(10),[time],120)) b on a.日期=b.日期
------解决方案--------------------
该日历史预约总和
例如:2012-1-1 100
是怎么得来的?
SQL code
建议你提供详细的资料:例如表的结构,表之间的关系,测试数据,相关算法及需要的结果。这样有助于我们理解你的意思,更主要的是能尽快让你获得答案或解决问题的方法。
  相关解决方案