the idea of this query is to compare the item's sales of two periodes. I did a query that does that good, but now i want to group by the client, i tried to add it to the query but FlameRobin crashes.
QUERY
SELECT COD, DESCRIPCION, IIF(CANTIDAD_1 IS NULL, 0, CANTIDAD_1) AS CANTIDAD1, IIF(OBSEQUIO_1 IS NULL, 0, OBSEQUIO_1) AS OBSEQUIO1,
IIF(ABONO_1 IS NULL, 0, ABONO_1) AS ABONO1, IIF(TOTAL_1 IS NULL, 0, TOTAL_1) AS TOTAL1,
IIF(CANTIDAD_2 IS NULL, 0, CANTIDAD_2) AS CANTIDAD2, IIF(OBSEQUIO_2 IS NULL, 0, OBSEQUIO_2) AS OBSEQUIO2,
IIF(ABONO_2 IS NULL, 0, ABONO_2) AS ABONO2, IIF(TOTAL_2 IS NULL, 0, TOTAL_2) AS TOTAL2,
((IIF(TOTAL_2 IS NULL, 0, TOTAL_2) - IIF(TOTAL_1 IS NULL, 0, TOTAL_1))/ IIF(TOTAL_1 IS NULL OR TOTAL_1 = 0, 1, TOTAL_1)) AS COMP
FROM (
SELECT SUM(CANT1) AS CANTIDAD_1,
SUM(CANT_OBSEQUIO) AS OBSEQUIO_1,
SUM(CANT_ABONO) AS ABONO_1,
(SUM(CANT1) + SUM(CANT_OBSEQUIO) - SUM(CANT_ABONO)) AS TOTAL_1,
CODIGO as COD, DESCR AS DESCRIPCION
FROM (
SELECT DISTINCT D.IDALBARAN AS IDALB, D.CODARTICULO AS CODIGO, D.DESCRIPCION_PRODUCTO AS DESCR,
IIF(D.IDCONCEPTO IS NULL OR D.IDCONCEPTO = '', D.CANTIDAD, 0) AS CANT1,
IIF(D.IDCONCEPTO = 'O' OR D.IDCONCEPTO = 'P', D.CANTIDAD, 0) AS CANT_OBSEQUIO,
IIF(D.IDCONCEPTO = 'A', D.CANTIDAD, 0) AS CANT_ABONO
FROM ALBARANESVENTA_DETALLE D
LEFT JOIN ALBARANESVENTA_CABECERA C ON C.IDALBARAN = D.IDALBARAN
LEFT JOIN ARTICULOS ar ON D.CODARTICULO = ar.CODARTICULO
LEFT JOIN ART_FAMILIA f ON ar.IDFAMILIA = f.IDFAMILIA
LEFT JOIN RUTAS r on C.IDRUTAORIGINAL = r.IDRUTA
LEFT JOIN CLIENTES cl ON cl.IDCLIENTE = c.IDCLIENTE
WHERE C.FECHA BETWEEN '02.10.2014' AND '09.10.2014')
GROUP BY COD, DESCRIPCION) T1
LEFT JOIN (
SELECT SUM(CANT2) AS CANTIDAD_2,
SUM(CANT_OBSEQUIO2) AS OBSEQUIO_2,
SUM(CANT_ABONO2) AS ABONO_2,
(SUM(CANT2) + SUM(CANT_OBSEQUIO2) - SUM(CANT_ABONO2)) AS TOTAL_2,
CODIGO2 as COD2
FROM (
SELECT DISTINCT D.IDALBARAN AS IDALB, D.CODARTICULO AS CODIGO2, D.DESCRIPCION_PRODUCTO AS DESCR2,
IIF(D.IDCONCEPTO IS NULL OR D.IDCONCEPTO = '', D.CANTIDAD, 0) AS CANT2,
IIF(D.IDCONCEPTO = 'O' OR D.IDCONCEPTO = 'P', D.CANTIDAD, 0) AS CANT_OBSEQUIO2,
IIF(D.IDCONCEPTO = 'A', D.CANTIDAD, 0) AS CANT_ABONO2, C.CODCLIENTE
FROM ALBARANESVENTA_DETALLE D
LEFT JOIN ALBARANESVENTA_CABECERA C ON C.IDALBARAN = D.IDALBARAN
LEFT JOIN ARTICULOS ar ON D.CODARTICULO = ar.CODARTICULO
LEFT JOIN ART_FAMILIA f ON ar.IDFAMILIA = f.IDFAMILIA
LEFT JOIN RUTAS r on C.IDRUTAORIGINAL = r.IDRUTA
LEFT JOIN CLIENTES cl ON cl.IDCLIENTE = c.IDCLIENTE
WHERE C.FECHA BETWEEN '10.10.2014' AND '17.10.2014')
GROUP BY COD2) T2
ON T1.COD = T2.COD2
GROUP BY COD, DESCRIPCION, CANTIDAD_1, OBSEQUIO_1, ABONO_1, TOTAL_1, CANTIDAD_2, OBSEQUIO_2, ABONO_2, TOTAL_2
Result of the query:
And the desired result i want its something like this:
Why not output the results to a temporary table. You will then be able to use this table to summarize the data by client. IE Join the temporary table to itself.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.