Sumar campos con decode y select

El problema que tengo es que dentro de mi base de datos poseo un gran numero de registro el sual solo quiero sumar aquellos que cumplan con una descripción determinada ya que lo que deseo es sumar por día y por hora mi query es
Select
decode(descripcion,
(select descripcion from dual where descripcion = 'mm1-recividos'), 'suma',
(select descripcion from dual where descripcion= 'mm3-enviados'), 'suma',
(select descripcion from dual where descripcion= 'mm4-fallidos'), 'suma',
'El campo no es mm1 ni mm3') "VALOR"
From PRUEBA_RECOLECTOR where fecha_xml between '01/03/2010' and '02/03/2010'
ORDER by descripcion,fecha_xml;
En donde dice suma quiero que sume el valor de los registro y con el from dual me muestra todos los registro y yo solo quiero que muestre los 3 que le dije que mostrara
agradezco toda la ayuda posible
Select DESCRIPCION, fecha_xml,
decode(descripcion,
(Select descripcion from dual where descripcion = 'total-number-of-MM1-received-messages'), 'El campo es: total-number-of-MM1-received-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM3-received-messages'), 'El campo es: total-number-of-MM3-received-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM4-received-messages'), 'El campo es: total-number-of-MM4-received-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM7-received-messages'), 'El campo es: total-number-of-MM7-received-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM1-sent-messages'), 'El campo es: total-number-of-MM1-sent-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM3-sent-messages'), 'El campo es: total-number-of-MM3-sent-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM4-sent-messages'), 'El campo es: total-number-of-MM4-sent-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM7-sent-messages'), 'El campo es: total-number-of-MM7-sent-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM1-rejected-messages'), 'El campo es: total-number-of-MM1-rejected-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM3-rejected-messages'), 'El campo es: total-number-of-MM3-rejected-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM4-rejected-messages'), 'El campo es: total-number-of-MM4-rejected-messages',
(Select descripcion from dual where descripcion= 'total-number-of-MM7-rejected-messages'), 'El campo es: total-number-of-MM7-rejected-messages',
'El campo no es mm1 ni mm3') "DEPT10"
From PRUEBA_RECOLECTOR where fecha_xml between '01/03/2010' and '02/03/2010'
ORDER by dept10,fecha_xml;

1 Respuesta

Respuesta
Esta un poco confusa tu información y aun la pregunta, según te entiendo quieres CONTAR ( no sumar) los registros que tengan como descripción 'mm1...',''mm2...','mm3...', para una fecha determinada, si es así no deberías ocupar un decode simplemente la agrupación, algo así:
select descripcion,count(*) from PRUEBA_RECOLECTOR where descripcion in ( 'mm1-recividos', 'mm3-enviados','mm4-fallidos') and fecha_xml between '01/03/2010' and '02/03/2010' group by descripcion order by descripcion
Si es así espero te sirva, sino espero tus explicaciones.
Éxitos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas