Ver Mensaje Individual
  #16 (permalink)  
Antiguo 05/09/2012, 14:33
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

cuanto tarde eso ya depende de las tablas implicadas y los indices de los mismos, que no te regresa resultados? ejecuta el query por partes

esto que regresa:

Código SQL:
Ver original
  1. SELECT COUNT(*) AS TOTAL, dbo.inculpado.EXP
  2.                         FROM dbo.Inculpado INNER JOIN
  3.                                 dbo.Radicacion ON dbo.Inculpado.Llave = dbo.Radicacion.Llave INNER JOIN
  4.                                 dbo.Resolucion ON dbo.Inculpado.Llave = dbo.Resolucion.Llave INNER JOIN
  5.                                 dbo.Sentencia ON dbo.Inculpado.Llave = dbo.Sentencia.Llave INNER JOIN
  6.                                 dbo.SinSentencia ON dbo.Inculpado.Llave = dbo.SinSentencia.Llave INNER JOIN
  7.                                 dbo.Ordenes ON dbo.Inculpado.Llave = dbo.Ordenes.Llave
  8.                         WHERE (dbo.Radicacion.Fecrad BETWEEN '01/01/2012' AND '30/06/2012')AND (dbo.SinSentencia.Sinsenten BETWEEN '01/01/2012' AND '30/06/2012')
  9.                                AND (dbo.Inculpado.Cve_del BETWEEN '847501' AND '847808') AND (dbo.Inculpado.Adolescente = 0) AND (dbo.Inculpado.Juzgado = '050401')
  10.                                AND (dbo.SinSentencia.Sinsenten <> '1800-01-01') AND (dbo.Resolucion.FecAfp <> '1800-01-01') AND (dbo.Resolucion.FecAul <> '1800-01-01')
  11.                         GROUP BY EXP
--------------------------------------------------

esto que regresa:

Código SQL:
Ver original
  1. SELECT t1.EXP FROM
  2.                         (SELECT COUNT(*) AS TOTAL, dbo.inculpado.EXP
  3.                          FROM dbo.Inculpado INNER JOIN
  4.                                 dbo.Radicacion ON dbo.Inculpado.Llave = dbo.Radicacion.Llave INNER JOIN
  5.                                 dbo.Resolucion ON dbo.Inculpado.Llave = dbo.Resolucion.Llave INNER JOIN
  6.                                 dbo.Sentencia ON dbo.Inculpado.Llave = dbo.Sentencia.Llave INNER JOIN
  7.                                 dbo.SinSentencia ON dbo.Inculpado.Llave = dbo.SinSentencia.Llave INNER JOIN
  8.                                 dbo.Ordenes ON dbo.Inculpado.Llave = dbo.Ordenes.Llave GROUP BY EXP) t1
  9.                         INNER JOIN (SELECT COUNT(*) AS TOTAL, dbo.inculpado.EXP
  10.                         FROM dbo.Inculpado INNER JOIN
  11.                                 dbo.Radicacion ON dbo.Inculpado.Llave = dbo.Radicacion.Llave INNER JOIN
  12.                                 dbo.Resolucion ON dbo.Inculpado.Llave = dbo.Resolucion.Llave INNER JOIN
  13.                                 dbo.Sentencia ON dbo.Inculpado.Llave = dbo.Sentencia.Llave INNER JOIN
  14.                                 dbo.SinSentencia ON dbo.Inculpado.Llave = dbo.SinSentencia.Llave INNER JOIN
  15.                                 dbo.Ordenes ON dbo.Inculpado.Llave = dbo.Ordenes.Llave
  16.                         WHERE (dbo.Radicacion.Fecrad BETWEEN '01/01/2012' AND '30/06/2012')AND (dbo.SinSentencia.Sinsenten BETWEEN '01/01/2012' AND '30/06/2012')
  17.                                AND (dbo.Inculpado.Cve_del BETWEEN '847501' AND '847808') AND (dbo.Inculpado.Adolescente = 0) AND (dbo.Inculpado.Juzgado = '050401')
  18.                                AND (dbo.SinSentencia.Sinsenten <> '1800-01-01') AND (dbo.Resolucion.FecAfp <> '1800-01-01') AND (dbo.Resolucion.FecAul <> '1800-01-01')
  19.                         GROUP BY EXP) t2 ON t1.EXP=t2.EXP
  20.                         WHERE t1.TOTAL=t2.TOTAL

y ya puedes ver porque no regresa nada..... la logica y como hacerlo ahi esta ahoa te toca a ti entenderla y aplicarla a tu problema :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me