Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2018, 11:07
madison_sg
 
Fecha de Ingreso: noviembre-2015
Mensajes: 77
Antigüedad: 8 años, 6 meses
Puntos: 2
Corrección de código para consulta MySql

Hola,

Estoy creando una consulta desde una sola columna de una tabla para que el resultado se muestre como una tabla nueva, es decir; cada uno de los elementos de la columna debe verse como un domicilio horizontalmente ya que en la columna se guarda de forma vertical. Ahora bien, logré crear la nueva tabla con la consulta que hice, pero no hace lo que necesito; lo que hace es que me muestra los resultados de la siguiente forma:
nuevo | tipo_via | calle | numero_exterior | numero_interior | referencia | codigo_postal | estado | municipio | ciudad | area_metropolitana | brick_atv | brick_ims | zona_postal | colonia| lada
11010026 0 0 0 0 0 0 0 0 0 0 0 11010026 0 0 0
11010034 0 0 0 0 0 0 0 0 0 0 0 11010034 0 0 0
11010046 0 0 0 0 0 0 0 0 0 0 0 11010046 0 0 0
11025001 0 0 0 0 0 0 0 0 0 0 0 11025001 0 0 0
4.45512E+11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
111001 0 0 0 0 0 0 0 0 0 0 111001 0 0 0 0
111002 0 0 0 0 0 0 0 0 0 0 111002 0 0 0 0
112500 0 0 0 0 0 0 0 0 0 0 112500 0 0 0 0
1303 0 1303 0 0 0 0 0 0 0 0 0 0 0 0 0
210 0 210 0 0 0 0 0 0 0 0 0 0 0 0 0
301 0 0 301 0 0 0 0 0 0 0 0 0 0 0 0
4 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0
45 0 0 45 0 0 0 0 0 0 0 0 0 0 0 0
465 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
53100 0 0 0 0 0 53100 0 0 0 0 0 0 0 0 0
54050 0 0 0 0 0 54050 0 0 0 0 0 0 0 0 0
54060 0 0 0 0 0 54060 0 0 0 0 0 0 0 0 0
54080 0 0 0 0 0 54080 0 0 0 0 0 0 0 0 0
7 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0
75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
AVENIDA AVENIDA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CALLE CALLE 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CALZADA CALZADA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CARPINTERIA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CERRADA CERRADA 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CIUDAD SATELITE 0 0 0 0 0 0 0 0 0 0 0 0 0 CIUDAD SATELITE 0
CONJUNTO PINTORES 0 0 0 0 0 0 0 0 0 0 0 0 0 CONJUNTO PINTORES 0
DATOS CONFIRMADOS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DIEZ 0 DIEZ 0 0 0 0 0 0 0 0 0 0 0 0 0
DOCTOR 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DOLOR ABDOMINAL 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ENFERMERA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Galderma 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GASTRITIS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
INACTIVO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
JACARANDAS AMPLIACION 0 0 0 0 0 0 0 0 0 0 0 0 0 JACARANDAS AMPLIACION 0
JUBILADO DE DIRECCION 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LA LOMA 0 0 0 0 0 0 0 0 0 0 0 0 0 LA LOMA 0
Mead Johnson 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
MEXICO 0 0 0 0 0 0 MEXICO 0 0 0 0 0 0 0 0
NAUCALPAN DE JUAREZ 0 0 0 0 0 0 0 NAUCALPAN DE JUAREZ 0 0 0 0 0 0 0
PRUEBA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[email protected] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[email protected] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
TLALNEPANTLA DE BAZ 0 0 0 0 0 0 0 TLALNEPANTLA DE BAZ 0 0 0 0 0 0 0
YA NO LABORA AHI 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


Si observan, no crea una sola fila sino qué crea varias filas que no se ven como un solo registro, en mi caso un registro puede tener 3 domicilios por lo que se supone que debería verse 3 veces o más bien, debería generar 3 filas, se supone que debe verse así:

tipo_via calle numero_exterior numero_interior referencia codigo_postal estado municipio ciudad area_metropolitana brick_atv brick_ims zona_postal colonia lada
AVENIDA 1303 301 0 0 53100 MEXICO NAUCALPAN DE JUAREZ 0 0 11025001 11010026 0 CIUDAD SATELITE 0
CALLE 210 45 0 0 54050 MEXICO TLALNEPANTLA DE BAZ 0 0 111001 11010034 0 CONJUNTO PINTORES 0
CALZADA DIEZ 0 7 0 54060 MEXICO TLALNEPANTLA DE BAZ 0 0 111002 11010046 0 JACARANDAS AMPLIACION 0
CERRADA 0 0 4 0 54080 MEXICO TLALNEPANTLA DE BAZ 0 0 112500 0 0 LA LOMA

Este es mi código:
Código PHP:
SELECT p.nuevo
(CASE 
WHEN r.campo 'tipo_via' THEN s.nuevo ELSE 0 END) AS tipo_via
(CASE 
WHEN r.campo 'calle' THEN s.nuevo ELSE 0 END) AS calle
(CASE 
WHEN r.campo 'numero_exterior' THEN s.nuevo ELSE 0 END) AS numero_exterior
(CASE 
WHEN r.campo 'numero_interior' THEN s.nuevo ELSE 0 END) AS numero_interior,
(CASE 
WHEN r.campo 'referencia' THEN s.nuevo ELSE 0 END) AS referencia
(CASE 
WHEN r.campo 'codigo_postal' THEN s.nuevo ELSE 0 END) AS codigo_postal,
(CASE 
WHEN r.campo 'estado' THEN s.nuevo ELSE 0 END) AS estado,
(CASE 
WHEN r.campo 'municipio' THEN s.nuevo ELSE 0 END) AS municipio,
(CASE 
WHEN r.campo 'ciudad' THEN s.nuevo ELSE 0 END) AS ciudad,
(CASE 
WHEN r.campo 'area_metropolitana' THEN s.nuevo ELSE 0 END) AS area_metropolitana,
(CASE 
WHEN r.campo 'brick_atv' THEN s.nuevo ELSE 0 END) AS brick_atv,
(CASE 
WHEN r.campo 'brick_ims' THEN s.nuevo ELSE 0 END) AS brick_ims,
(CASE 
WHEN r.campo 'zona_postal' THEN s.nuevo ELSE 0 END) AS zona_postal,
(CASE 
WHEN r.campo 'colonia' THEN s.nuevo ELSE 0 END) AS colonia,
(CASE 
WHEN r.campo 'lada' THEN s.nuevo ELSE 0 END) AS lada
FROM cambio p 
INNER JOIN cambio s ON p
.id_cambio s.id_cambio 
INNER JOIN cambio r ON s
.nuevo r.nuevo 
GROUP BY p
.nuevo 
He buscado en internet y de hecho es como conseguí esta forma de consulta que es lo más apegado a lo que requiero. Cabe mencionar que estoy trabajando con tablas relacionales pero para esta consulta solo trabajo con la tabla "cambio" específicamente con el los campos 'nuevo' y 'campo'
Este es el header de mi tabla cambio:
id_cambio|id_campania|id_usuario|id_entidad|.....e ntidad......|...anterior..|......nuevo...........| .......campo.......|fecha_cambio
.....9.... |.....1....|.....5....|.....1....|.....Datos Medico.|.............|[email protected].....|..... ..email_1.....|08/10/2018
....10... |.....1....|.....5....|.....1....|.....Datos Medico.|.............|[email protected]..|..... ..email_2.....|08/10/2018
....11... |.....1....|.....5....|.....1....|.....Datos Medico.|.CARPINTERIA.|......................|..... ...hobbie.....|08/10/2018
....12... |.....1....|.....5....|.....1....|.....Datos Medico.|......NO.....|..........SI..........|.publ ica_revistas..|08/10/2018
....13... |.....1....|.....5....|.....1....|.....Datos Medico.|...ACTIVO....|..DATOS CONFIRMADOS...|......estatus......|08/10/2018
....14... |.....1....|.....5....|.....1....|.....Domicilio.. .....|...AVENIDA...|.........CALLE........|......t ipo_via.....|08/10/2018
....15... |.....1....|.....5....|.....2....|.....Domicilio.. .....|....CALLE....|........CALZADA.......|......t ipo_via.....|08/10/2018

Espero me puedan auxiliar a corregir mi consulta.
Gracias por su apoyo.

P.D. Disculpen las tablas tan terribles, pero con este editor no las puedo dejar muy fijas que digamos.
__________________
paco alonso

Última edición por madison_sg; 09/10/2018 a las 11:30