Hai provato a stampare la query in fase di esecuzione? se no prova, apparentemente sembra corretta ma magari non ti arrivano i valori delle variabili