Nie wiem czy poprawnie, ale poradziłem sobie w poniższy sposób i wygląda na to, że działa - może komuś się przyda:
SELECT
T1.tw_Symbol,
CEILING ({I:Mnożnik:1} * (SUM(T1.Ilosc) / {I:Ile miesięcy wstecz})) AS StanMin
FROM (SELECT DISTINCT
dok_Id,
ob_Id,
ob_TowId,
tw_Symbol,
(ob_IloscMag * ob_Znak) AS ilosc
FROM vwZstSprzWgKhnt
LEFT JOIN tw__towar ON ob_TowId = tw_Id
LEFT JOIN tw_CechaTw ON ob_TowId = cht_IdTowar
WHERE
dok_MagId = 1
AND
(dok_DataWyst BETWEEN DATEADD(MONTH, - {I:Ile miesięcy wstecz},GETDATE()) AND GETDATE())
AND
ob_TowRodzaj = 1
AND
tw_Zablokowany = 0
AND
(tw_IdGrupa IN ({CHL_DB: SELECT -1, '(dowolna)' AS "nazwaGrupy" UNION ALL SELECT grt_Id, grt_Nazwa AS "nazwaGrupy" FROM sl_GrupaTw ORDER BY "nazwaGrupy":Grupa:-1:(dowolna)})
OR
-1 IN ({CHL_DB: SELECT -1, '(dowolna)' AS "nazwaGrupy" UNION ALL SELECT grt_Id, grt_Nazwa AS "nazwaGrupy" FROM sl_GrupaTw ORDER BY "nazwaGrupy":Grupa:-1:(dowolna)})
) --Dwie kontrolki (CHL_DB) mają na celu wymusić domyślnie wybraną opcję [dowolna]
AND
(cht_idCecha IN ({CHL_DB:SELECT -1, '(dowolna)' AS "nazwaCechy" UNION ALL SELECT ctw_id, ctw_Nazwa AS "nazwaCechy" FROM sl_cechaTw ORDER BY "nazwaCechy":Cecha:-1:(dowolna)})
OR
-1 IN ({CHL_DB:SELECT -1, '(dowolna)' AS "nazwaCechy" UNION ALL SELECT ctw_id, ctw_Nazwa AS "nazwaCechy" FROM sl_cechaTw ORDER BY "nazwaCechy":Cecha:-1:(dowolna)})
) --Dwie kontrolki (CHL_DB) mają na celu wymusić domyślnie wybraną opcję [dowolna]
) AS T1
GROUP BY
T1.tw_Symbol