MySQL - consulta mysql

 
Vista:

consulta mysql

Publicado por Jquero (2 intervenciones) el 16/01/2012 12:03:10
Buenas tardes,

Mi problema es que tengo una tabla por ejemplo con la siguiente estructura:

Facturas
numFactura
CodCliente
Fecha
Importe

Y necesito que una consulta me devuelva lo siguiente:

CodCliente, ImporteTotal, ImporteTrimestre1, ImporteTrimestre2, ImporteTrimestre3, ImporteTrimestre4

Mi consulta :

Select CodCliente, Sum(Importe) as ImporteTrimestre, Quarter(Fecha) as Trimestre
From Facturas
GROUP By Trimestre, CodCliente
Order By CodCliente, Trimestre

El problema es que por cada cliente me devuelve 4 registros, cada uno correspondiente a un trimestre y yo necesito que me devuelva los importes de los trimestres en columnas.

A ver si alguien me puede iluminar un poco porque por mas vueltas que le doy no veo la solución.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

consulta mysql

Publicado por Gonzalo GC (339 intervenciones) el 17/01/2012 10:26:01
Ya lo preguntaste en Foros del Web (http://www.forosdelweb.com/f86/consulta-mysql-970071/) y ya te dieron la respuesta correcta.
¿Por qué sigues insistiendo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consulta mysql

Publicado por Jquero (2 intervenciones) el 17/01/2012 11:30:22
Hola Gonzalo,

No insisto simplemente lo postee en los dos foros.

La respuesta, por si le sirve a alguien de este foro es:
leonardo_josue
Hola javiquero:

Éste tipo de consultas se ha tratado muchas veces... por lo que te recomiendo que antes de publicar una pregunta utilices la herramienta de búsqueda para ver si no es un tema repetido... la consulta quedaría más o menos así:

Código MySQL:

SELECT
CodCliente,
SUM(Importe) AS ImporteTrimestre,
SUM(IF (QUARTER(Fecha) = 1, importe, 0)) AS Trimestre_1,
SUM(IF (QUARTER(Fecha) = 2, importe, 0)) AS Trimestre_2,
SUM(IF (QUARTER(Fecha) = 3, importe, 0)) AS Trimestre_3,
SUM(IF (QUARTER(Fecha) = 4, importe, 0)) AS Trimestre_4
FROM Facturas
GROUP BY CodCliente
ORDER BY CodCliente;


Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar