Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/12/2013, 05:11
Avatar de Kamae
Kamae
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona (Catalunya)
Mensajes: 307
Antigüedad: 16 años, 6 meses
Puntos: 13
Valores DISTINCT de un campo como COLUMNAS

Buenas a todos

Tengo una duda con una consulta sobre pedidos de piedras. Muestro el volumen en metros cúbicos de las piedras, pero por cada tipo de piedra que hay. También lo filtro por años haciendo un YEAR() de la fecha de salida del pedido. El problema es que quiero mostrarlo todo en una sola consulta en vez de una consulta por año, haciendo que cada año sea una columna.

Como en realidad lo hago junto con PHP no me importa indicar manualmente los años, pero el problema es que me repite los registros por cada año, quedando de la siguiente forma:



Me gustaría que saliera cada columna "nom" una sola vez y que cada valor del año en su correspondiente columna.

Os pongo la consulta:
Código MySQL:
Ver original
  1. SELECT t.nom, SUM(b.volum), IF(YEAR(c.dataSortida)=2009, SUM(b.volum), 0) '2009', IF(YEAR(c.dataSortida)=2010, SUM(b.volum), 0) '2010', IF(YEAR(c.dataSortida)=2011, SUM(b.volum), 0) '2011', IF(YEAR(c.dataSortida)=2012, SUM(b.volum), 0) '2012', IF(YEAR(c.dataSortida)=2013, SUM(b.volum), 0) '2013'
  2. FROM (bloc b INNER JOIN tipuspedra t ON b.idTipus=t.id) INNER JOIN albara a ON b.idAlbara=a.id INNER JOIN comanda c ON c.id=a.idComanda
  3. WHERE b.idAlbara IS NOT NULL
  4. GROUP BY b.idTipus, YEAR(c.dataSortida)
  5. ORDER BY t.nom,YEAR(c.dataSortida);

Gracias de antemano

Última edición por gnzsoloyo; 13/12/2013 a las 06:43 Razón: MUY MAL etiquetado. MySQL NO ES PHP.