• Domingo 22 de Diciembre de 2024, 22:49

Autor Tema:  correccion de procedure en sql server....  (Leído 1275 veces)

alexspaola

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
correccion de procedure en sql server....
« en: Domingo 21 de Junio de 2009, 02:18 »
0
Buenas tardes,
me toy rompiendo la cabeza con esto....

estoy haciendo el siguiente procedure el cual despliega la información  de una campana, el problema es q no se agrupa correctamente por campaña los resultados.
ya que despliega la información de la siguiente manera

campana  fechainicial  fechafinal   llamadas_contestadas  llamadas_ocupadas  llamadas_nocontestadas  total_llamadas
navidad    12-05-2009 12-06-2009     1                               0                            0                                    1
navidad    12-05-2009 12-06-2009     0                                1                            0                                    1
navidad    12-05-2009 12-06-2009     0                               0                            1                                    1
año nuevo   12-05-2009 12-06-2009   1                               0                            0                                    1
año nuevo   12-05-2009 12-06-2009   0                               1                            0                                    1
año nuevo   12-05-2009 12-06-2009   0                               0                            1                                    1

y quiero obtener esto como resultado:

campana  fechainicial  fechafinal   llamadas_contestadas  llamadas_ocupadas  llamadas_nocontestadas  total_llamadas
navidad    12-05-2009 12-06-2009      1                               1                            1                                    3
año nuevo   12-05-2009 12-06-2009    1                               1                            1                                    3

AS
begin
declare @cod as varchar
Select Cam_Description, Cam_BeginDate, Cam_EndDate,count(Sta_Code),
case Sta_Status when 'C'then count(Sta_Code) else 0 end "answer",
case Sta_Status when 'N'then count(Sta_Code) else 0 end "nanswer",
case Sta_Status when 'B'then count(Sta_Code) else 0 end "busy",
case when LTRIM(RTRIM(datediff(ss,Sta_DateTimeBegin,Sta_DateTimeEnd)))>(Srv_LeaveCall) then count(Sta_Code) else 0 end "aban", Srv_WaitMinContact
 from ((dbo.tb_Campain c inner join dbo.tb_Service s on c.Srv_Code=s.Srv_code)inner join dbo.tb_Statistic t on c.Cam_Code=t.Cam_Code)
 where  Cam_BeginDate between @dateB and @dateE
GROUP BY Cam_Description, Cam_BeginDate, Cam_EndDate, Srv_WaitMinContact,Sta_Status,Sta_DateTimeBegin,Sta_DateTimeEnd,Srv_LeaveCall,Sta_Status

syricardo

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: correccion de procedure en sql server....
« Respuesta #1 en: Martes 23 de Junio de 2009, 14:58 »
0
hola

      creo q el problema es la forma es q estas tratando de hacer el conteo,
      m parece q estas usando mal la función de agregación, este tipo de consulta:
     
Código: SQL
  1.  CASE Sta_Status WHEN 'C'THEN COUNT(Sta_Code) ELSE 0 END "answer"
  2.  
     cambiala por
     
Código: SQL
  1. SUM(CASE Sta_Status WHEN 'C' THEN 1 ELSE 0 END) "answer"
  2.  

saludos