Ciao a tutti,

avrei bisogno di un aiuto su come creare ad hoc una function in oracle...vi spiego:

questa funzione accetta come parametri

1 - dalla data
2 - alla data
3 - codice articolo
4 - magazzino

CREATE OR REPLACE FUNCTION "EXPLORER"."QTA_MAG"( DTIN IN CHAR, DTFI IN CHAR, REFE IN CHAR, MAG IN varchar2)
RETURN NUMBER
IS TQTA NUMBER(11,2);
BEGIN
SELECT
SUM(C_ENTRATO_QTA)
INTO TQTA
FROM
ST_COMM_GIORN
WHERE
C_DATA BETWEEN QTA_MAG.DTIN AND QTA_MAG.DTFI AND
C_FLG_FLUSSO='MOV' AND
C_REFERENZA=QTA_MAG.REFE AND
C_CDC_MAG IN (QTA_MAG.MAG);
RETURN(TQTA);
END;

quindi:

SELECT QTA_MAG('2009-02-01','2009-02-28','102300','20') AS TQTA FROM DUAL

TQTA
-------
506

...ma se volessi il totale passando più di un magazzino, una cosa tipo:

MAG = '20','22','24'....etc

come devo strutturare la function ? ...perchè se gli passo il parametro così, oracle lo interpreta come valore da passare alla IN e non come stringa per comporla...

non ho molta dimestichezza...penso si deduca.

potete aiutarmi ?

Grazie e ciao

Andrea