Una specie di vista con parametri
La sintassi è
CREATE FUNCTION
RETURN TABLE AS
RETURN
(
SELECT * FROM
WHERE
)
Nel mio caso specifico avevo bisogno di una vista che passandogli il magazzino e gli estremi delle date mi restituisse le giacenze del magazzino e del periodo di date indicato
CREATE FUNCTION dbo.VDgaTest (@Magazzino CHAR(3),@DaData CHAR(8), @AData CHAR(8))
RETURNS TABLE
AS
RETURN
(
select ARTICOLO,
round(sum (
case
when INVENTARIO = '+' then QUANTITA
when INVENTARIO = '-' then QUANTITA*-1
when CARICO = '+' then QUANTITA
when CARICO = '-' then QUANTITA*-1
when ACARICO = '+' then QUANTITA
when ACARICO = '-' then QUANTITA*-1
when SCARICO = '-' then QUANTITA
when SCARICO = '+' then QUANTITA*-1
when ASCARICO = '-' then QUANTITA
when ASCARICO = '+' then QUANTITA*-1
end),4) GIACENZA
from MOVIMAG
where 1=1
and DATA>= @DaData
and DATA<= @AData
and TIPO <> '..'
AND MAGAZZINO=@Magazzino
group by ARTICOLO
)
La funzione si richiama semplicemente con un :
SELECT * FROM vDgaTest('000','20150101','20150831')
Nessun commento:
Posta un commento