PDA

Ver la Versión Completa : Problema con Group by


david_uh
13-04-2008, 16:35:29
hola foro
Estoy almacenando informacion sobre ventas en mi tabla ventas con los campos:
Id, fecha, total, igv, idlocal,iddocumento, nro documento. fecha
y mi tabla detalle venta
idventa, idprroducto, cantidad, total, utilidad.
engo una abla para mis productos tal que asi:
id, nombe, presentacion. marca, categoria.

como podria hace para recuperar las las utilidades por c/u de los productos que tengo, en un deteminado periodo de ventas

Esoy usando group by pero al juntar las tablas con inner join no funciona como quiero.

Gracias por cualquie alcance

Delphius
13-04-2008, 16:54:28
Hola David_uh, ¿Podrías indicar la consulta que estás haciendo? Y en lo posible explicar mejor el problema?
No se que interpretar cuando dices en un período determinado de fechas. Si es lo que pienso, se hace a través de Between.

Aquí dos respuestas:
http://www.clubdelphi.com/foros/showthread.php?t=53453&highlight=between+fecha+firebird
http://www.clubdelphi.com/foros/showthread.php?t=53274&highlight=between+fecha+firebird

Saludos,

jachguate
13-04-2008, 20:37:08
hola foro
Estoy almacenando informacion sobre ventas en mi tabla ventas con los campos:
Id, fecha, total, igv, idlocal,iddocumento, nro documento. fecha
y mi tabla detalle venta
idventa, idprroducto, cantidad, total, utilidad.
engo una abla para mis productos tal que asi:
id, nombe, presentacion. marca, categoria.

como podria hace para recuperar las las utilidades por c/u de los productos que tengo, en un deteminado periodo de ventas

Lo primero, es hacer un join que nos devuelva todos los registros que queremos:

Se me ocurre que podría ser:


select p.marca, p.nombre, v.fecha, dv.utilidad
from venta v
inner join detalle_venta dv
on dv.idventa = v.id
inner join producto p
on p.id = dv.idproducto


Cuando estas seguro de tener la consulta que devuelve todos los registros de interés, aplicar el agrupamiento tal como nos convenga, por ejemplo, si queremos totales de utilidades por mes para cada producto, podría ser:


select p.marca, p.nombre, extract(month from v.fecha) mes,
extract(year from v.fecha) anio,
sum(dv.utilidad)
from venta v
inner join detalle_venta dv
on dv.idventa = v.id
inner join producto p
on p.id = dv.idproducto
group by 1, 2, 3, 4
order by 1, 2, 4, 3


Hasta luego.

;)