Espero q te sirva, hay q mejorarlo, pero ahorita toy d salida del trabajo.
Código sql:
Ver originalDECLARE @TABLE TABLE ( fecha datetime, condicional CHAR(2))
INSERT INTO @TABLE VALUES( getdate() , 'si' )
INSERT INTO @TABLE VALUES( getdate() , 'si' )
INSERT INTO @TABLE VALUES( getdate() , 'no' )
INSERT INTO @TABLE VALUES( dateadd(DAY, -1, getdate()) , 'no' )
INSERT INTO @TABLE VALUES( dateadd(DAY, -1, getdate()) , 'no' )
INSERT INTO @TABLE VALUES( dateadd(DAY, -1, getdate()) , 'si' )
SELECT DISTINCT *,
[%_si] = (cont1 / ((cont1+cont2) * 1.0))*100,
[%_no] = (cont2 / ((cont1+cont2) * 1.0))*100
FROM (
SELECT anio = YEAR(t.fecha),
mes = MONTH(t.fecha),
dia = DAY(t.fecha),
cont1 = (SELECT COUNT(t1.condicional) FROM @TABLE t1
WHERE YEAR(t1.fecha) = YEAR(t.fecha) AND
MONTH(t1.fecha) = MONTH(t.fecha) AND
DAY(t1.fecha) = DAY(t.fecha) AND
condicional = 'si' ),
cont2 = (SELECT COUNT(t1.condicional) FROM @TABLE t1
WHERE YEAR(t1.fecha) = YEAR(t.fecha) AND
MONTH(t1.fecha) = MONTH(t.fecha) AND
DAY(t1.fecha) = DAY(t.fecha) AND
condicional = 'no' )
FROM @TABLE t ) xx
Saludo