Optimizar consulta Promedios
Publicado por Fabian (2 intervenciones) el 17/04/2020 21:00:36
Hola a todos,
Estoy tratando de realizar un consulta que me de promedios de venta por periodos de tiempo (meses anteriores) y clasificado por unidades de negocio (industryc -1, 1, 2 y null) con la siguiente consulta:
El problema que tengo es que dura mucho ejecutando el query, quisiera saber si me pueden ayudar a realizar una consulta que no dure tanto (así como está lleva mas de 25 minutos y aún no se ejecuta)
Nota:
1. Los otros inner join es para posteriormente colocar campos de esas tablas
2. En la consulta me falta llamar los datos cuando industry c es 2 y null
Estoy tratando de realizar un consulta que me de promedios de venta por periodos de tiempo (meses anteriores) y clasificado por unidades de negocio (industryc -1, 1, 2 y null) con la siguiente 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
select
t0.ItemCode 'ID ARTÍCULO',
t0.ItemName 'DESCPRICIÓN',
SUM(case when t1.docdate>dateadd(MM, -3, getdate()) then (t1.OutQty-t1.InQty)/3 else 0 end) '3 meses AS',
SUM(case when t1.docdate>dateadd(MM, -6, getdate()) then (t1.OutQty-t1.InQty)/6 else 0 end) '6 meses AS',
SUM(case when t1.docdate>dateadd(MM, -9, getdate()) then (t1.OutQty-t1.InQty)/9 else 0 end) '9 meses AS',
SUM(case when t1.docdate>dateadd(MM, -12, getdate()) then (t1.OutQty-t1.InQty)/12 else 0 end) '12 meses AS',
SUM(case when t4.docdate>dateadd(MM, -3, getdate()) then (t4.OutQty-t4.InQty)/3 else 0 end) '3 meses EP',
SUM(case when t4.docdate>dateadd(MM, -6, getdate()) then (t4.OutQty-t4.InQty)/6 else 0 end) '6 meses EP',
SUM(case when t4.docdate>dateadd(MM, -9, getdate()) then (t4.OutQty-t4.InQty)/9 else 0 end) '9 meses EP',
SUM(case when t4.docdate>dateadd(MM, -12, getdate()) then (t4.OutQty-t4.InQty)/12 else 0 end) '12 meses EP'
from
OITM t0
inner join OINM t1 on t1.ItemCode=t0.ItemCode
inner join TABLAS t3 on t3.IdTabla= t1.TransType
inner join OCRD t2 on t2.CardCode= t1.CardCode
inner join ocrd T5 on T5.CardCode= T1.CardCode,
OINM t4
inner join OCRD t6 on T6.CardCode= T4.CardCode
where
t3.SiesVentas ='SI' and
T5.IndustryC=-1 and
T6.IndustryC=1
group by t0.ItemCode, t0.ItemName
El problema que tengo es que dura mucho ejecutando el query, quisiera saber si me pueden ayudar a realizar una consulta que no dure tanto (así como está lleva mas de 25 minutos y aún no se ejecuta)
Nota:
1. Los otros inner join es para posteriormente colocar campos de esas tablas
2. En la consulta me falta llamar los datos cuando industry c es 2 y null
Valora esta pregunta


0