buon giorno a tutti....
io ho un problemino con la query che setta le variabili che poi mi serviranno per un calcolo successivo...
non riesco a settare le variabili facendo la where...in quanto la nuova @variabile non appartiene ad alcuna tabella. però io devo fare riferimento con una join alla tabella utenti dove ho le condizioni necessarie per effettuare il calcolo.
ora vi chiedo.. devo creare una tabella ed inserire il valore di avg e std e poi confrontare le tabelle?? oppure c'e un modo di settare la nuova variabile senza modificare i dati della tabella base?
se non effettuo la where nel settaggio variabili il programma funziona perfettamente
grazie per l'aiuto
SET @avg_errori_riflesso = (select avg(errori),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @std_errori_riflesso = (select std(errori),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @avg_tempo_tocco_lento_riflesso = (select avg(tempo_tocco_lento),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @std_tempo_tocco_lento_riflesso = (select std(tempo_tocco_lento),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @avg_tempo_tocco_veloce_riflesso = (select avg(tempo_tocco_veloce),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @std_tempo_tocco_veloce_riflesso = (select std(tempo_tocco_veloce),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @avg_tempo_tocco_medio_riflesso = (select avg(tempo_tocco_medio),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
SET @std_tempo_tocco_medio_riflesso = (select std(tempo_tocco_medio),
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F');
select @avg_errori_riflesso, @std_errori_riflesso;
select @avg_tempo_tocco_lento_riflesso, @std_tempo_tocco_lento_riflesso;
select @avg_tempo_tocco_medio_riflesso, @std_tempo_tocco_medio_riflesso;
select @avg_tempo_tocco_veloce_riflesso, @std_tempo_tocco_veloce_riflesso;
select ((50 +10*(errori - @avg_errori_riflesso) / @std_errori_riflesso) +
(50 +10*(tempo_tocco_lento - @avg_tempo_tocco_lento_riflesso) / @std_tempo_tocco_lento_riflesso) +
(50 + 10*(tempo_tocco_medio - @avg_tempo_tocco_medio_riflesso) / @std_tempo_tocco_medio_riflesso) +
(50 + 10*(tempo_tocco_veloce - @avg_tempo_tocco_veloce_riflesso) / @std_tempo_tocco_veloce_riflesso)) /4,
riflesso.partite_id, utenti.id from riflesso join utenti on riflesso.partite_id = utenti.id
WHERE data_di_nascita < NOW() AND data_di_nascita > date_sub(NOW(), INTERVAL 9000 DAY) and sesso= 'F';