Ver Mensaje Individual
  #12 (permalink)  
Antiguo 05/09/2012, 12:42
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Conteo Complicado SQLServer

a ver si entendi:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. juz VARCHAR(20),
  4. EXP INT,
  5. [año] INT,
  6. inc VARCHAR(20),
  7. fec1 datetime,
  8. fec2 datetime,
  9. fec3 datetime
  10. )
  11.  
  12. INSERT INTO #temp VALUES ('110402',59,2012,'mario','06/08/2012','06/30/2012','06/01/2012')
  13. INSERT INTO #temp VALUES ('50400',54,2012,'maria','02/18/2012','06/30/2012','02/21/2012')
  14. INSERT INTO #temp VALUES ('50400',54,2012,'jesus',NULL,NULL,'02/21/2012')
  15. INSERT INTO #temp VALUES ('50400',54,2012,'jose',NULL,NULL,'02/21/2012')
  16. INSERT INTO #temp VALUES ('50400',54,2012,'Libras','02/18/2012',NULL,'02/21/2012')
  17. INSERT INTO #temp VALUES ('50400',56,2012,'Libras','02/18/2012',NULL,'02/21/2012')
  18. INSERT INTO #temp VALUES ('50400',56,2012,'Libras','02/18/2012',NULL,'02/21/2012')
  19.  
  20.  
  21. SELECT EXP FROM #temp
  22. WHERE (fec1 BETWEEN '01/01/2012' AND '06/30/2012') AND
  23. (fec3 BETWEEN '01/01/2012' AND '06/30/2012') AND (fec3<> '1800-01-01')  
  24. AND EXP IN (
  25.  
  26. SELECT t1.EXP FROM
  27. (SELECT COUNT(*) total, EXP FROM #temp GROUP BY EXP) t1
  28. INNER JOIN (SELECT COUNT(*) total , EXP FROM #temp
  29. WHERE (fec1 BETWEEN '01/01/2012' AND '06/30/2012') AND
  30. (fec3 BETWEEN '01/01/2012' AND '06/30/2012')
  31.  GROUP BY EXP) t2 ON t1.EXP=t2.EXP
  32. WHERE t1.total=t2.total
  33.  
  34.  
  35. )
  36. GROUP BY EXP

tenemos esos datos entonces segun la logica que planteas deberia de regresar el exp 59 y el 56 el 54 no deberia de contarlo porque aunque cumple con las condiciones de fechas(en 2 casos) el total de registros es de 4 y no todas cumplen con la condicion por el contrario el registro 56 deberia de contarlo como 1 porque aunque aparece 2 veces las 2 veces cumple con la condicion, right???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 05/09/2012 a las 12:51