AGRUPAR VENTAS POR AÑO
Publicado por Nico Monzon (7 intervenciones) el 20/03/2017 18:13:30
Hola a todos los que leen esta duda, tengo la siguiente consulta, lo que necesito es agrupar por año, no sé que es lo que estoy haciendo mal ya que me da un error, lo que necesito obtener en esta consulta son las ventas separadas por año. muchas gracias a todos
CONSULTA:
CONSULTA:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
SELECT fecha,familia,
SUM(CASE WHEN YEAR(fecha) = 2015 THEN replace(round(neto_sin_iva, 2) - rappel,'.',',')) END AS 2015,
SUM(CASE WHEN YEAR(fecha) = 2016 THEN replace(round(neto_sin_iva, 2) - rappel,'.',',')) END AS 2016,
SUM(CASE WHEN YEAR(fecha) = 2017 THEN replace(round(neto_sin_iva, 2) - rappel,'.',',')) END AS 2017
FROM alma,
(SELECT lin_codigo, mar_descripcion,
LPad(mar_familia, 5, '') || '' || fam_nombre as Familia,
LPad(mar_subfamilia, 5, ' ') || ' ' || subfam_nombre as SubFamilia,
LPad('', 30, '') || '' || VEN_NOMBRE as VENDEDOR,
TO_NUMBER(TO_CHAR(GLIN_FECHA, 'YYYY')) as fecha,
mar_pre_costo costo_art, mar_pre_medio medio_art,
Sum(lin_uni) as unidades,
Sum(lin_bonif) as bonif,
Sum(lin_bultos) as bultos,
Sum(round(round(lin_uni * lin_p_venta,2) * (1 - lin_descuento_t/100), 2)) as ventas,
Sum(lin_uni * mar_peso) as kilos,
Sum(Round(lin_p_costo * (lin_uni + lin_bonif), 2)) as costo,
Sum(Round(lin_p_medio * (lin_uni + lin_bonif), 2)) as pmedio,
((sum(round(round(lin_uni * lin_p_venta, 2) * (1 - lin_descuento_t/100), 2))) - sum(round((lin_uni + lin_bonif) * lin_p_costo, 2))) as BenfBruto,
((sum(round(round(lin_uni * lin_p_venta, 2) * (1 - lin_descuento_t/100), 2))) - sum(round((lin_uni + lin_bonif) * lin_p_medio, 2))) as BenfPM,
Sum(round(round(round(lin_uni * lin_p_venta, 2) * (1 - lin_descuento_t / 100), 2) * (1 - glin_dto_pp / 100) * (1 - glin_dto_adicio_01 / 100) * (1 - glin_dto_adicio_02 / 100) * (1 - glin_dto_adicio_03 / 100), 2)) as neto_sin_iva,
Sum(round(round(round(round(lin_uni * lin_p_venta, 2) * (1 - lin_descuento_t / 100), 2) * glin_recargo / 100, 2) * (1 + lin_iva_v / 100), 2)) rappel,
Sum(glin_descuento_i) glin_descuento_i,
Sum(round(Round(round(round(lin_uni * lin_p_venta,2) * (1 - lin_descuento_t/100),2) * (1 - glin_dto_pp / 100) * (1 - glin_dto_adicio_01 / 100) * (1 - glin_dto_adicio_02 / 100) * (1 - glin_dto_adicio_03 / 100), 2) * (lin_iva_v/100), 2)) IVA_V
FROM linfac, glinfac, articulo, familia, subfam
, proved01
, vendedor, client01
WHERE glin_n_fac = lin_n_fac
AND glin_estado = lin_estado
AND glin_estado IN (1, 6, 8)
AND Trim(mar_n_articulo) = Trim(lin_codigo)
AND mar_familia = fam_codigo AND mar_subfamilia = subfam_codigo (+)
AND mar_familia = subfam_codigo_fam (+)
AND glin_fecha BETWEEN '01/01/2015' AND '31/12/2016'
AND glin_cliente BETWEEN 430010001 AND 430999999
AND glin_alma BETWEEN 2 AND 40
AND glin_vendedor BETWEEN 2 AND 2
AND mar_familia BETWEEN 1 AND 99
AND glin_zona BETWEEN 0 AND 999
AND lin_provee = prove_cuenta (+)
AND mcl_vendedor = ven_codigo (+)
AND glin_cliente = mcl_n_cliente
GROUP BY lin_codigo, mar_descripcion,
LPad(mar_familia, 5, '') || '' || fam_nombre,
LPad(mar_subfamilia, 5, ' ') || ' ' || subfam_nombre,
LPad('', 30, '') || '' || VEN_NOMBRE,
TO_NUMBER(TO_CHAR(GLIN_FECHA, 'YYYY')),
mar_pre_costo, mar_pre_medio,glin_recargo )
, articulo A
WHERE alm_codigo = lin_codigo
AND alm_codigo = A.mar_n_articulo
GROUP BY lin_codigo, A.mar_descripcion, familia, subfamilia,VENDEDOR,fecha,mar_nu_prov,fecha, costo_art, medio_art,unidades, bultos, bonif, ventas, costo, pmedio, BenfBruto, BenfPM, neto_sin_iva, glin_descuento_i, iva_v ,rappel, kilos, A.mar_tipo_arti, A.mar_unid_bulto
order by fecha;
Valora esta pregunta
0