sql
SELECT ACMSUB.CSID, ACMSUB.CLIENTES, COUNT(evento.TIPO) AS DISPAROS, evento.Evento, evento.Detalle FROM CENTRAL INNER JOIN ACMSUB ON CENTRAL.CSID = ACMSUB.CSID INNER JOIN evento ON CENTRAL.EVENTO = evento.Evento WHERE (evento.Evento LIKE 'BA%' OR evento.Evento LIKE '1%') AND FECHAN >'20090520' GROUP BY ACMSUB.CSID, ACMSUB.CLIENTES, evento.Evento, evento.Detalle HAVING (COUNT(evento.TIPO) > 3) ORDER BY ACMSUB.CSID
Mi programa recibe datos desde el puerto serial, los cuales tienen relacion con sistemas de alarmas residenciales y los guarda en una base de datos sql server 2000
En esta consulta utilizo tres tablas:
1.- ACMSUB que la tabla de los clientes
2.- CENTRAL que se encarga de archivar todos los datos del puerto serial
3.- EVENTO que se encarga de definir que significa cada dato archivado en la tabla central
Con esta consulta logro que me diga si en una casa la alarma ha sonado en mas de tres ocasiones desde una fecha X hasta el dia actual. Hasta hay todo bien, Solo que deseo que cuente las alarmas que han sonado solo si esto ha pasado en dias diferentes.
Ejemplo:
0225 BA01 robo zona 1 25/05/2009 10:00 AM
0225 BA01 robo zona 1 25/05/2009 04:05 PM
0225 BA01 robo zona 1 26/05/2009 11:25 AM
0225 BA01 robo zona 1 26/05/2009 09:22 PM
0225 BA01 robo zona 1 29/05/2009 08:05 PM
La cuenta me daria ahora 5 disparos de alarma y quiero que solo me sume uno por dia y que el conteo de 3
Espero haberme explicado bien. Cualquier idea sera bien recibida