Porque no lo haces con un case?? estas repitiendo un query 12 veces que seria mejor hacer con un case, otra cosa si sacas todos los meses, porque no nada mas lo haces para los que necesitas? digo en lugar de hacerlo para 12 lo haces para 6 o para 3, si lo quieres hacer nada mas en un solo paso puedes probar:
Código SQL:
Ver originalISNULL((SELECT SUM(Y1.OutQty) FROM OINM Y1 WHERE Y1.ItemCode=T0.ITemCode
AND YEAR(Y1.DocDate)>=@AÑO_ACTUAL AND MONTH(Y1.DocDate) beetween 1 AND 6),0)'Semestre'
ISNULL((SELECT SUM(Y1.OutQty) FROM OINM Y1 WHERE Y1.ItemCode=T0.ITemCode AND YEAR(Y1.DocDate)>=@AÑO_ACTUAL AND MONTH(Y1.DocDate) beetween 1 AND 3),0)'Trimestre'
ya que si quieres puedes obtener el mes actual con un
declare @mes_actual int
select @mes_actual=datepart(mm,getdate())
y en el query
Código SQL:
Ver originalISNULL((SELECT SUM(Y1.OutQty) FROM OINM Y1 WHERE Y1.ItemCode=T0.ITemCode AND YEAR(Y1.DocDate)>=@AÑO_ACTUAL AND MONTH(Y1.DocDate) beetween @mes_actual AND @mes_actual+3),0)'Trimestre'