PDA

Ver la Versión Completa : Problema al agrupar fechas por mes


Mauro®
30-10-2008, 18:04:51
Hola a todos.
Tengo un problema y quisiera saber si me pueden ayudar u orientarme para buscar una solución.
Deseo hacer una consulta SQL para obtener las ventas de articulos agrupadas por mes y por artículo. La he creado con el siguiente código, pero me da error en interbase 7.5, si la ejecuto en firebird funciona.


SELECT EXTRACT(MONTH FROM STOCKMOV.FEC_INGRESO) AS MES, STOCKMOV.CANT, ARTICULOS.COD_ART
FROM STOCKMOV INNER JOIN ARTICULOS ON (STOCKMOV.ART_ID = ARTICULOS.ART_ID)
GROUP BY
STOCKMOV.CANT, ARTICULOS.COD_ART, EXTRACT(MONTH FROM STOCKMOV.FEC_INGRESO) AS MES


El error que obtengo es que no reconoce la columna 'MES', he probado con MES y con la sentencia completa EXTRACT pero no funciona.

Desde ya muchas gracias.
Saludos a todos.
Mauro.-

duilioisola
30-10-2008, 18:11:02
Prueba quitando MES en la parte GROUP BY

SELECT EXTRACT(MONTH FROM STOCKMOV.FEC_INGRESO) AS MES, STOCKMOV.CANT, ARTICULOS.COD_ART
FROM STOCKMOV INNER JOIN ARTICULOS ON (STOCKMOV.ART_ID = ARTICULOS.ART_ID)
GROUP BY
STOCKMOV.CANT, ARTICULOS.COD_ART, EXTRACT(MONTH FROM STOCKMOV.FEC_INGRESO)


tambien puedes probar numerando los campos por los que vas a agrupar

SELECT EXTRACT(MONTH FROM STOCKMOV.FEC_INGRESO) AS MES, STOCKMOV.CANT, ARTICULOS.COD_ART
FROM STOCKMOV INNER JOIN ARTICULOS ON (STOCKMOV.ART_ID = ARTICULOS.ART_ID)
GROUP BY 2, 3, 1

Nota : No recuerdo si los campos del select se numeran en base a 0 o a 1.

Mauro®
30-10-2008, 18:40:21
Gracias por responder tan pronto duilioisola.
Probé de las dos formas y tampoco funciona.

Ya he probado varias cosas pero no puedo hacerlo andar.
Saludos,
Mauro

a_f_g
03-11-2008, 15:57:38
Select Extract(month From Stockmov.fec_ingreso) As Mes, Stockmov.cant, Articulos.cod_art
From Stockmov Inner Join Articulos On (stockmov.art_id = Articulos.art_id)
Group By
Stockmov.cant, Articulos.cod_art, Mes

Mauro®
03-11-2008, 16:34:18
Gracias por tu respuesta, ya probé de esta manera pero tampoco funciona.
Aquí está el error.

Can't format message 13:794 -- message system code -4.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
MES.

Saludos,
Mauro

a_f_g
05-11-2008, 11:46:04
Podrias Crear Un Procedimiento Almacenado De Este Y Del Resultado Hace Una Consulta Para Agrupar Seria Primer Paso

Crar Procedimiento Alamacenado
Select Extract(month From Stockmov.fec_ingreso) As Mes, Stockmov.cant, Articulos.cod_art
From Stockmov Inner Join Articulos On (stockmov.art_id = Articulos.art_id)

Luego Consulta Del Procedimiento

Select Pa.mes, From Pa Group By Pa.mes

Podes Probar Asi...