16-05-2018
|
|
Membrillo Premium
|
|
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.520
Reputación: 21
|
|
Cita:
Empezado por duilioisola
Creo que esta es una versión mas simple y por lo tanto mas "entendible" - Se recorren los registros agrupados por albaran, fecha y articulo.
- Dentro de cada registro que se devuelve, se realizan dos subselect que suma de esa misma tabla los registros que correspondan con ese alabran, fecha y articulo.
- Un subselect filtra los que el precio son iguales a 0.
- El otro subselect filtra los que el precio son distintos de 0.
- A cada uno de estas sumas se les asinga un nombre (cant_pr y cant_sin).
- Opcionalmente se podría ordenar, pero el group by ya lo hace...
Código SQL [-]select /* Campos agrupados */ v.albaran, v.fecha, v.articulo, /* Suma cantidades con precio 0 dentro del albaran-fecha-articulo */ (select sum(cantidad) from ventaslineas where albaran = v.albaran and fecha = v.fecha and articulo = v.articulo and precio <> 0) as cant_pr, /* Suma cantidades con precio distinto de 0 dentro del albaran-fecha-articulo */ (select sum(cantidad) from ventaslineas where albaran = v.albaran and fecha = v.fecha and articulo = v.articulo and precio = 0) as cant_sin from ventaslineas v group by v.albaran, v.fecha, v.articulo
|
Gracias compañero.
Saludos
__________________
Be water my friend.
|