Ciao ragazzi, ho due tabelle
a (id, nome_campo) e
b (ide, nome_campo),
dove id e ide sono identificativi univoci che conteggiano il numero di righe di ciascuna tabella.
Devo calcolare la formula
sqrt(pow((a.nome_campo-b.nome_campo),2))
tra il primo records di b e tutti i records di a, poi tra il secondo records di b e e tutti i records di a; poi tra il terzo records di b e tutti i records di a e così via..fino a quando si giunge all'ultimo record di b.
Supponendo che la tabella a abbia 40 records e la tabella b abbia 30 records ho pensato di realizzare ciò col ciclo for ma ci riesco solo in parte, nel seguente modo:
In questo modo ottengo 40 risultati (cioè l'applicazione della formula tra il primo records di b e tutti i records di A). Dovrei ciclare però anche sulla variabile ide per fare in modo che ciò avvenga, considerando il secondo record di b, e così via..codice:create procedure calcolo() BEGIN DECLARE id INT; SET id = 1; loop_label: LOOP select ide, sqrt(pow((a.nome_campo-b.nome_campo),2)) as risultato from nome_tabella1 as a, nome_tabella2 as b where id=1 and ide=1; SET id = id + 1; IF id= 40 THEN LEAVE loop_label; END IF; END LOOP; END
Non so se è chiaro.
Potete aiutarmi?

Rispondi quotando