Via Lattanzio,23 Milano
+39 02 36592025
info@synaptica.info

Firebird: inserire una procedura parametrica con ritorno di dati in una Join

Firebird: inserire una procedura parametrica con ritorno di dati in una Join

Supponiamo di avere una procedura che richiede parametri e restituisce un result set di dati, per evitare di fare infinite subquery si penserebbe di poterla mettere in join tipo :

ma questo sistema non funziona dato che all’interno della from non verrebbero elaborati i dati della prima tabella e avremmo un errore non formale ma di elaborazione.

Il problema si risolve semplicemente utilizzando una left join che prevede a livello di motore database di permettere l’elaborazione del result set di dati partendo da sisnistra, quindi nel nostro caso verrebbero analizzati per primi i dati della tabella “ANAGRAFICHE”. Quindi utilizzando la sintassi dell’esempio qui sotto otterremo il risultato aspettato:

quindi se avessimo altre procedure da mettere in join semplicemente basterebbe fare altri “left join” come da esempio, e potremmo utilizzare come parametri anche i valori di output di un’altra procedura.

Ovviamente potrete obiettare che la left join ritorna sempre il record set delle tabelle a monte della left, ma nessuno ci vieta di utilizzare a fine delle join un sana “WHERE” e fare i controlli che ci servono per escludere i record indesiderati.

di seguito il semplice codice della procedura uutilizzata :

Lascia un commento