Foros del Web » Programando para Internet » PHP »

Obtener resultado de un fila y convertirlo en columna

Estas en el tema de Obtener resultado de un fila y convertirlo en columna en el foro de PHP en Foros del Web. Hola! Tengo un problema con una consulta: Está de esta forma: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original select *     from t_ventas_productos INNER JOIN ...
  #1 (permalink)  
Antiguo 24/07/2014, 17:00
Avatar de dvbeaumont  
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años, 7 meses
Puntos: 1
Pregunta Obtener resultado de un fila y convertirlo en columna

Hola!

Tengo un problema con una consulta:

Está de esta forma:

Código MySQL:
Ver original
  1.    from t_ventas_productos INNER JOIN t_ventas ON t_ventas_productos.id_venta=t_ventas.id INNER JOIN t_productos_cantidades_precios ON t_ventas_productos.id_producto=t_productos_cantidades_precios.id
  2.             INNER JOIN t_productos ON t_productos_cantidades_precios.id_producto=t_productos.id
  3.             INNER JOIN t_clientes ON t_ventas.id_cliente=t_clientes.id
  4.             WHERE (fecha BETWEEN '2014-07-24 01:00:00' AND '2014-07-25 8:00:00') AND t_ventas_productos.id_venta=t_ventas.id

Y me arroja estos datos:

id_venta | producto | cantidad | nombre | apellido | costo_total

244 | Camisas | 2 | Raul | Rodriguez | 450
244 | Pantalon | 1 | Raul | Rodriguez | 320
245 | Gorra | 3 | Simon | Perez | 850
246 | Camisas | 1 | Jose | Rosas | 225
246 | Zapatos | 3 | Jose | Rosas | 1028

(OJO: no coloqué otros, estan demas. Como la fecha y eso, pero aun así esa de arriba es la consulta)

Y quisiera que me arrojara los resultados de esta forma:

id_venta | Camisas | Pantalon | Gorra | Camisas | Zapatos | nombre | apellido | costo_total

244 | 2 | 1 | 0 | 0 | 0 | Raul | Rodriguez | 770
245 | 0 | 0 | 3 | 0 | 0 | Simon | Perez | 850
246 | 1 | 0 | 0 | 0 | 3 | Raul | Rodriguez | 1253

Donde los productos llamados de la base de datos se conviertan en columnas e indique la cantidad donde le corresponde.

Consegui un codigo en internet que hace algo parecido, pero la consulta de ellos es de una sola tabla, la mia es de multiples tablas.

Pueden verlo en este link:
http://sqlfiddle.com/#!2/c3e0d/331

Código MySQL:
Ver original
  1. select pt.partner_name,
  2.   SUM(case when pd.product_name = 'Product A' THEN 1 END) ProductA,
  3.   SUM(case when pd.product_name = 'Product B' THEN 1 END) ProductB,
  4.   SUM(case when pd.product_name = 'Product C' THEN 1 END) ProductC,
  5.   SUM(case when pd.product_name = 'Product D' THEN 1 END) ProductD,
  6.   SUM(case when pd.product_name = 'Product E' THEN 1 END) ProductE
  7. from partners pt
  8. left join sales s
  9.   on pt.part_id = s.partner_id
  10. left join products pd
  11.   on s.product_id = pd.prod_id
  12. group by pt.partner_name

Espero puedan ayudarme con esta consulta.

Abrazos y gracias de antemano!
__________________
Sé parte de nuestro mundo creativo.

http://bbcreativos.com
  #2 (permalink)  
Antiguo 25/07/2014, 19:36
 
Fecha de Ingreso: agosto-2013
Ubicación: Guatemala
Mensajes: 137
Antigüedad: 11 años, 3 meses
Puntos: 4
Respuesta: Obtener resultado de un fila y convertirlo en columna

Se que pensarás que no viene al caso pero que clase de reporte estás armando, ya que como lo veo pareciera que no tiene sentido, pero te equivocas ya que yo tengo uno casi parecido pero es para Kardex

Etiquetas: columna, fecha, fila, resultado, select, sql, tabla
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 08:53.