Hai ragione Piero, dovendo fare in questo modo come la vedi:Originariamente inviato da piero.mac
Senza le parentesi per OR la query risultera' imprevedibile causa la precedenza degli operatori.
cosi' come l'hai presentata funzionerebbe cosi':
codice:WHERE (id_personale IN(19,33,22) AND '2011-05-10' BETWEEN data_start AND data_end ) OR ('2011-06-25' BETWEEN data_start AND data_end) -- mentre tu credo vorresti: WHERE id_personale IN(19,33,22) AND ('2011-05-10' BETWEEN data_start AND data_end OR '2011-06-25' BETWEEN data_start AND data_end)
Essendo tutti OR e tutti confronti tra id e range di date, dovrebbe essere ok o consigli sempre di mettere le parentesi?codice:WHERE id_personale='19' AND '2010-06-17' BETWEEN data_start AND data_end OR id_personale='19' AND '2010-06-18' BETWEEN data_start AND data_end OR id_personale='19' AND '2010-09-29' BETWEEN data_start AND data_end OR id_personale='33' AND '2010-06-17' BETWEEN data_start AND data_end

Rispondi quotando