Ver Mensaje Individual
  #1  
Antiguo 10-01-2022
amadis amadis is offline
Miembro
 
Registrado: may 2005
Ubicación: San José, Colón, Entre Ríos, Argentina
Posts: 315
Reputación: 20
amadis Va por buen camino
consulta firebird 3 con IIF y group by

Buenas tardes compañeros.

Disculpen que no se me ocurrio un titulo mas claro

Pero la cuestion es la siguiente tengo una consulta para generar estadisticas de articulos vendidos.

Y necesito entre varias cosas calcular el margen de ganancia

I para evitar error de division por 0 uso IIF

Y resulta que al agregar esa linea me pide que agrupe por el campo detalleventa.costo (que es algo que no quiero porque no sirve)
Ese campo es siempre distinto, seria el ultimo costo del articulo vendido, y lo utilizo para calcular el costo promedio de un articulo a lo cargo del tiempo y como cambia no seria un campo para agrupar, pero al calcular con el IIF me pide que agrupe por ese campo.

¿de que forma podria evitar que me lo pida en group by?

Código SQL [-]
select 

detalleventa.art, detalleventa.descripcion, alicuotas.porcent, sum(detalleventa.costo* alicuotas.porcent)/sum(detalleventa.cant)as costoprom, articulos.costo as costoactual,
sum(detalleventa.total) as total, sum(detalleventa.cant) as cant, sum(detalleventa.cant) * articulos.peso as kilos,

  IIF ( (detalleventa.costo * alicuotas.porcent) > 0,(sum(detalleventa.total)/sum(detalleventa.cant))/(detalleventa.costo *  alicuotas.porcent), 0) as Margen

from detalleventa

inner join facturas
on detalleventa.numero = facturas.id

inner join articulos
on articulos.id = detalleventa.art

inner join alicuotas
on articulos.iva = alicuotas.id

where facturas.fecha > :fe

group by detalleventa.art, detalleventa.descripcion, alicuotas.porcent, articulos.costo, articulos.peso

order by cant asc
Responder Con Cita