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

Mostrar todos los registros en orden especifico.

Estas en el tema de Mostrar todos los registros en orden especifico. en el foro de SQL Server en Foros del Web. Hola .. Tengo esta consulta: SELECT DISTINCT(cod_suc), nom_suc FROM temporalGerente Con la consulta anterior simplemente traigo todos los registros Tengo esta otra consulta: SELECT nom_suc ...
  #1 (permalink)  
Antiguo 19/06/2011, 17:35
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Mostrar todos los registros en orden especifico.

Hola ..



Tengo esta consulta:

SELECT DISTINCT(cod_suc), nom_suc FROM temporalGerente


Con la consulta anterior simplemente traigo todos los registros

Tengo esta otra consulta:

SELECT nom_suc AS NOMBRE_SUCURSAL , cod_suc AS SUCURSAL, COUNT(cantidad) AS RANKING FROM temporalGerente
WHERE cat_dis = '002' AND tip_recep IN ('PS','WB','SN') AND cod_grupo='100'
GROUP BY cod_suc , nom_suc ORDER BY RANKING DESC

Esta consulta solo me trae los registros que cumplan con dichas condiciones...

No se como hacer la consulta para que me traiga todos los registros , pero que esten en las primeras posiciones los que cumplan la condicion..
  #2 (permalink)  
Antiguo 20/06/2011, 02:42
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Mostrar todos los registros en orden especifico.

Puedes hacer un UNION de la consulta que cumple las condiciones con otra consulta de todos los que no las cumplan y así te saldrá lo que quieres

CONSULTA_QUE_CUMPLE
UNION
CONSULTA_QUE_NO_CUMPLE
  #3 (permalink)  
Antiguo 20/06/2011, 07:39
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Mostrar todos los registros en orden especifico.

Hola

Pues la consulta la hice asi:


(SELECT nom_suc AS NOMBRE_SUCURSAL , cod_suc AS SUCURSAL, COUNT(cantidad) AS RANKING FROM temporalGerente
WHERE cat_dis = '002' AND tip_recep IN ('PS','WB','SN') AND cod_grupo='100'
GROUP BY cod_suc , nom_suc)
UNION(SELECT nom_suc AS NOMBRE_SUCURSAL , cod_suc AS SUCURSAL, COUNT(cantidad) AS RANKING
FROM temporalGerente
WHERE cat_dis NOT IN ('002') AND tip_recep IN ('KC','KV','RP') AND cod_grupo IN ('100','200','840','500')
GROUP BY cod_suc , nom_suc
)

Pero me repite los registros..
  #4 (permalink)  
Antiguo 20/06/2011, 08:41
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Mostrar todos los registros en orden especifico.

Hola informacionsys:

Creo que sería conveniente que nos pusieras algunos datos de ejemplo, pues sin ellos es muy difícil determinar por qué te está repitiendo registros. Creo que las condiciones que estás poniendo para filtrar la información no son las correctas, pues para obtener el COMPLEMENTO, simplemente tendrías que negar todas las condiciones que pones en el primer select, es decir, si en tu primer select tienes esto:

Código SQL:
Ver original
  1. SELECT nom_suc AS NOMBRE_SUCURSAL , cod_suc AS SUCURSAL, COUNT(cantidad) AS RANKING FROM temporalGerente
  2. WHERE cat_dis = '002' AND tip_recep IN ('PS','WB','SN') AND cod_grupo='100'
  3. GROUP BY cod_suc , nom_suc

El complemento sería más o menos así:

Código SQL:
Ver original
  1. SELECT nom_suc AS NOMBRE_SUCURSAL , cod_suc AS SUCURSAL, COUNT(cantidad) AS RANKING FROM temporalGerente
  2. WHERE cat_dis != '002' AND tip_recep NOT IN ('PS','WB','SN') AND
  3. cod_grupo != '100'
  4. GROUP BY cod_suc , nom_suc

Si esto no funciona prueba con EXCEPT para excluir los registros.

Saludos
Leo
  #5 (permalink)  
Antiguo 20/06/2011, 09:51
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: Mostrar todos los registros en orden especifico.

Puedes dar mas informacion acerca de la estructura de tus tablas y algunos datos de ejemplo y cual seria el problema?

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 20/06/2011, 15:29
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: Mostrar todos los registros en orden especifico.

Hola

Gracias compañero..

Mira estos registros son los que me trae la consulta:


Código:
NOMBRE_SUCURSAL                   SUCURSAL              RANKING 
PORTAL  80  LC 068-069	               225	                        284
GIRARDOT	                       212                             223
CPS FUSAGASUGA	                       206                         181
CPS PLAZA DE LAS AMERICAS             205	                      132
ZIPAQUIRA	                       216	                       102
LOCAL PLAZA DE LAS AMERICAS           207	                       88


En total son 22 los que me trae esa consulta , pero necesito traer todas que son 32 simplemente quiero que me muestre en primera posicion las que cumplan la condicion y las que no de ultimas....

Última edición por informacionsys; 20/06/2011 a las 15:45
  #7 (permalink)  
Antiguo 21/06/2011, 02:09
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Mostrar todos los registros en orden especifico.

Es que la condición del primer WHERE y la del segundo no son complementarias, por eso no te trae todos y te trae duplicados

Etiquetas: especifico, orden, registros
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 11:32.