Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/12/2013, 03:42
joselegolas
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 11 años, 10 meses
Puntos: 0
combinar resultados

Hola a todos,

Me surge una query primeriza para mi, tengo usuarios que ubicar en un departamento y darle un cargo en concreto, para ello tengo 4 tablas

tabla 1 Usuarios (id_Usuario, Nombre...)
tabla 2 Departamentos (id_Departamento, departamento)
tabla 3 Cargos_dpto (id_Cargo_dpto, cargo)
tabla 4 asistencia_dpto (id_asistencia, id_Usuario, id_Departamento, id_Cargo): aqui listo cada usuario a que departamento y cargo le otorgo (pueden ser varios departamentos con varios cargos, es decir varias filas para un usuario)

Pues bien, si un usuario está en varios departamentos me devuelve tantas líneas como departamentos tenga... y necesito obtenerlos combinados en una sola línea

Query utilizada (generada de forma dinámica con php, esto es para que siempre coga todos los dptos si se agrega alguno a las tablas):
Código SQL:
Ver original
  1. SELECT
  2.     U.id_Usuario, CONCAT(U.Nombre,' ',U.PrimerApellido,' ',U.SegundoApellido) Usuario,
  3.     IF(A.id_Departamento=1,C.id_Cargo_dpto,NULL) 'Almacén de material',
  4.     IF(A.id_Departamento=2,C.id_Cargo_dpto,NULL) 'Calidad',
  5.     IF(A.id_Departamento=3,C.id_Cargo_dpto,NULL) 'Controlling',
  6. FROM usuarios U
  7. LEFT JOIN asistencia_dpto A ON A.id_Usuario=U.id_Usuario
  8. LEFT JOIN cargos_dpto C ON C.id_Cargo_dpto=A.id_Cargo_dpto

y lo que obtengo es:

Código HTML:
Ver original
  1. Pepe pepote 2 NULL NULL
  2. Pepe pepote NULL 2 NULL
  3. Carmen carmona NULL 1 NULL

Lo que deseo:

Código HTML:
Ver original
  1. Pepe pepote 2 2 NULL
  2. Carmen carmona NULL 1 NULL

No sirve Group BY U.id_Usuario ya que lo único que consigo es que me salga el primer resultado, pero no los combina