Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/12/2008, 17:06
Avatar de Thumper
Thumper
 
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 20 años, 4 meses
Puntos: 6
Respuesta: Porcentaje condicional con agrupacion de fechas

Espero q te sirva, hay q mejorarlo, pero ahorita toy d salida del trabajo.

Código sql:
Ver original
  1. DECLARE @TABLE TABLE ( fecha datetime, condicional CHAR(2))
  2.  
  3. INSERT INTO @TABLE VALUES( getdate() , 'si' )
  4. INSERT INTO @TABLE VALUES( getdate() , 'si' )
  5. INSERT INTO @TABLE VALUES( getdate() , 'no' )
  6.  
  7. INSERT INTO @TABLE VALUES( dateadd(DAY, -1, getdate()) , 'no' )
  8. INSERT INTO @TABLE VALUES( dateadd(DAY, -1, getdate()) , 'no' )
  9. INSERT INTO @TABLE VALUES( dateadd(DAY, -1, getdate()) , 'si' )
  10.  
  11. SELECT DISTINCT *,
  12.     [%_si] = (cont1 / ((cont1+cont2) * 1.0))*100,
  13.     [%_no] = (cont2 / ((cont1+cont2) * 1.0))*100
  14. FROM (
  15. SELECT  anio = YEAR(t.fecha),
  16.     mes = MONTH(t.fecha),
  17.     dia = DAY(t.fecha),
  18.     cont1 = (SELECT COUNT(t1.condicional) FROM @TABLE t1
  19.          WHERE  YEAR(t1.fecha) = YEAR(t.fecha) AND 
  20.             MONTH(t1.fecha) = MONTH(t.fecha) AND
  21.             DAY(t1.fecha) = DAY(t.fecha) AND
  22.             condicional = 'si' ),
  23.     cont2 = (SELECT COUNT(t1.condicional) FROM @TABLE t1
  24.          WHERE  YEAR(t1.fecha) = YEAR(t.fecha) AND 
  25.             MONTH(t1.fecha) = MONTH(t.fecha) AND
  26.             DAY(t1.fecha) = DAY(t.fecha) AND
  27.             condicional = 'no' )   
  28. FROM @TABLE t ) xx

Saludo
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD