Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2014, 17:00
Avatar de dvbeaumont
dvbeaumont
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 145
Antigüedad: 13 años, 1 mes
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