Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ordenar Registros mediante una consulta

Estas en el tema de Ordenar Registros mediante una consulta en el foro de SQL Server en Foros del Web. Buenos días. Para explicar mejor lo que necesito primero pondré el código SQL que utilizo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT a . Actividad ...
  #1 (permalink)  
Antiguo 03/03/2015, 08:39
(Desactivado)
 
Fecha de Ingreso: septiembre-2008
Mensajes: 269
Antigüedad: 15 años, 7 meses
Puntos: 22
Ordenar Registros mediante una consulta

Buenos días.

Para explicar mejor lo que necesito primero pondré el código SQL que utilizo:

Código SQL:
Ver original
  1. SELECT a.Actividad AS [ACTIVIDADES REALIZADAS], COUNT(b.Actividad) AS TOTALES
  2.  FROM Accesos_y_Clausuras AS a, Accesos_y_Clausuras AS b
  3.  WHERE (((b.[No])=[a].[No])) AND a.Fecha >= '2015-01-01' AND a.Fecha <= '2015-01-31'  GROUP BY a.Actividad ORDER BY a.Actividad

Ese código me genera una consulta de cuantas veces en el mes se ha realizado una determinada actividad.

En este sentido el resultado que muestra esta consulta es el siguiente:

Código HTML:
ACTIVIDADES REALIZADAS	TOTALES
Activación de Usuario	5
Asignación Caja-Usuario	1
Asociación de Usuario	5
Baja a Empleado	11
Bloqueo de Cuenta	4
Cambio de Perfil	1
Creación de Grupo	1
Creación de Usuario	35
Reinicio de Password	39
Resolución de Incidencia	5
Restricción de Acceso	1
Solicitud de Acceso	29
Como podrán observar la actividad "Cambio de Perfil" y "Creación de Grupo" tienen un solo registro y deseo lo siguiente:

Si al realizar la consulta existen dos valores bajitos en este caso 1, que tome ese registro y lo muestre entre dos valores grandes.

Un ejemplo puede ser que el "Cambio de Perfil" esté entre "Creación de Usuario" y "Reinicio de Password".

Esto lo necesito ya que mediante esta consulta se genera un gráfico en una aplicación y al generarse esos valores tan pequeños juntos el grafico muestra pegados los labes que muestran el porcentaje.

Espero haberme explicado correctamente.

Gracias de antemano por su acostumbrada colaboración.

Saludos.
  #2 (permalink)  
Antiguo 03/03/2015, 09:46
Avatar de 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: Ordenar Registros mediante una consulta

eso que quieres ya seria del lado de aplicacion no de la base de datos......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 03/03/2015, 13:08
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 11 años, 9 meses
Puntos: 40
Respuesta: Ordenar Registros mediante una consulta

Espero que entendí lo que buscás:
Código SQL:
Ver original
  1. WITH T1 AS
  2. (SELECT a.Actividad AS [ACTIVIDADES REALIZADAS], COUNT(b.Actividad) AS TOTALES
  3. FROM Accesos_y_Clausuras AS a, Accesos_y_Clausuras AS b
  4. WHERE (((b.[No])=[a].[No])) AND a.Fecha >= '2015-01-01' AND a.Fecha <= '2015-01-31'  
  5. GROUP BY a.Actividad),
  6. T2 AS
  7. (SELECT *,
  8.         Rank() OVER(ORDER BY TOTALES) Rnk
  9. FROM    T1)
  10. SELECT  *
  11. FROM    T2
  12. ORDER BY CASE WHEN Rnk=1 THEN 2
  13.             WHEN [ACTIVIDADES REALIZADAS]<='Creación de Usuario' THEN 1
  14.             ELSE 3
  15.             END,
  16.             [ACTIVIDADES REALIZADAS];
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: mediante, registros, select, siguiente, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.