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

Ordenar Resultado de la Consulta

Estas en el tema de Ordenar Resultado de la Consulta en el foro de Mysql en Foros del Web. No puedo Order Resultado de esta consulta si me podrian ayudar se los agradeceria mucho saludos.... @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT dcon.idEmpleado , ...
  #1 (permalink)  
Antiguo 10/06/2013, 12:26
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 3 meses
Puntos: 1
Ordenar Resultado de la Consulta

No puedo Order Resultado de esta consulta si me podrian ayudar se los agradeceria mucho saludos....

Código MySQL:
Ver original
  1. SELECT dcon.idEmpleado, CONCAT(dcon.aPaterno, ' ', dcon.aMaterno, ' ', dcon.nombre)
  2. AS nombreCompleto
  3.  FROM $bd_Cont.$tb_Empleado AS dcon  LEFT JOIN BD_CYSA.CAT_FUNCIONARIOS
  4.  AS func ON dcon.idEmpleado=func.idEmpleado
  5.  WHERE dcon.idPuesto NOT IN (59,45,106) AND func.fechaBaja IS NULL
  6.  SELECT dcon.idEmpleado, CONCAT(dcon.aPaterno, ' ', dcon.aMaterno, ' ', dcon.nombre)
  7.  AS nombreCompleto
  8.  FROM $bd_Cont.$tb_Empleado AS dcon  LEFT JOIN BD_CYSA.CAT_FUNCIONARIOS
  9.  AS func ON dcon.idEmpleado=func.idEmpleado
  10.  WHERE dcon.idPuesto NOT IN (59,45,106) AND dcon.idEmpleado = '".$liderAuditoria."'
Este resultado se va a poder ver en un select-----Esta consulta me devuelve un listado de trabajadores pero no busco como ordenarlos....

Última edición por gnzsoloyo; 10/06/2013 a las 12:42 Razón: código de programacion no permitido en foros de bases de datos.
  #2 (permalink)  
Antiguo 10/06/2013, 12:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar Resultado de la Consulta

Código mYsql:
Ver original
  1. SELECT dcon.idEmpleado, CONCAT(dcon.aPaterno, ' ', dcon.aMaterno, ' ', dcon.nombre)
  2. AS nombreCompleto
  3.  FROM $bd_Cont.$tb_Empleado AS dcon  LEFT JOIN BD_CYSA.CAT_FUNCIONARIOS
  4.  AS func ON dcon.idEmpleado=func.idEmpleado
  5.  WHERE dcon.idPuesto NOT IN (59,45,106) AND func.fechaBaja IS NULL
  6.  SELECT dcon.idEmpleado, CONCAT(dcon.aPaterno, ' ', dcon.aMaterno, ' ', dcon.nombre)
  7.  AS nombreCompleto
  8.  FROM $bd_Cont.$tb_Empleado AS dcon  LEFT JOIN BD_CYSA.CAT_FUNCIONARIOS
  9.  AS func ON dcon.idEmpleado=func.idEmpleado
  10.  WHERE dcon.idPuesto NOT IN (59,45,106) AND dcon.idEmpleado = '".$liderAuditoria."';

Las tablas de la segunda parte de los join estan bien?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 10/06/2013, 13:04
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Ordenar Resultado de la Consulta

Si esta bien de hecho imprime bien a los empleados pero el problema esta que si le pongo ORDER BY aPaterno al final de la consulta me marca un error y no se por que si vi ejemplos de como ordernan los valores con union aplico lo mismo y nada
  #4 (permalink)  
Antiguo 10/06/2013, 13:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ordenar Resultado de la Consulta

Cita:
ORDER BY aPaterno al final de la consulta me marca un error
Por lo pronto: ¿Qué error te marca?

Si no nos lo dices, no podemos adivinarlo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 10/06/2013, 13:15
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Ordenar Resultado de la Consulta

Hola vesper_metal90:

No entiendo por qué utilizar en primer lugar un UNION, si a final de cuentas lo único la única diferencia es una condición... Esto sería lo mismo que hacer esto:

Código MySQL:
Ver original
  1.    dcon.idEmpleado,
  2.    CONCAT(dcon.aPaterno, ' ', dcon.aMaterno, ' ', dcon.nombre) nombreCompleto
  3. FROM $bd_Cont.$tb_Empleado dcon  
  4. LEFT JOIN BD_CYSA.CAT_FUNCIONARIOS func
  5. ON dcon.idEmpleado=func.idEmpleado
  6.    dcon.idPuesto NOT IN (59,45,106) AND
  7.    (func.fechaBaja IS NULL OR
  8.     dcon.idEmpleado = '".$liderAuditoria."');

La cláusula AS es completamente inútil. Ahora bien, si el problema es la ordenación, en el unión la cláusula ORDER BY se puede comportar de maneras distintas, dependiendo de cómo la utilices, puedes ordenar por partes o también ordenar la consulta final

Código MySQL:
Ver original
  1. SELECT * FROM tabla1
  2. SELECT * FROM tabla2
  3. ORDER BY campo;
  4.  
  5. (SELECT * FROM tabla1 ORDER BY campo)
  6. (SELECT * FROM tabla2 ORDER BY campo)
  7.  
  8. SELECT * FROM tabla1
  9. (SELECT * FROM tabla2 ORDER BY campo)
  10.  
  11. (   SELECT * FROM tabla1
  12.     UNION
  13.     SELECT * FROM tabla2) T
  14. ORDER BY campo;

Haz la prueba y nos comentas.

Saludos
Leo.
  #6 (permalink)  
Antiguo 10/06/2013, 13:21
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: Ordenar Resultado de la Consulta

Ya encontre la solucion esta mas obvia la solucion el problema estaba en que estoy haciendo referencia aPaterno claro nunca lo va a order por que no es una columna tendria que ser asi ORDER BY nombreCompleto ASC donde nombreCompleto es la concatenacion de los nombre de los empleados hora si lo ordena bien que tonto fui--- vi un post antiguo donde tu comentas http://www.forosdelweb.com/f86/order-union-369173/ de ahi se me prendio el foco y pude solucionarlo.

Gracias por tomar su tiempo saludos amigos

Etiquetas: join, resultado, select
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 23:47.