[Risolto][Yii1] Criteria Select With Count Distinct More Params

Ciao Ragazzi,

proverò a lasciare un post anche nel forum internazionale, pare essere un bug perchè il codice in sql funziona benone ma yii restituisce questo errore:




Active record "User" is trying to select an invalid column "(SELECT count(distinct(p.data_soggiorno". Note, the column must exist in the table or be an expression with alias.



l’errore viene dato solo nel caso in cui nel distinct c’è più di un parametro.

questo è il mio codice




$criteria1->select = '*,

(SELECT count(distinct(p.data_soggiorno,p.programma_id)) FROM guida as g,pratica as p WHERE t.id=g.utente_id AND g.pratica_id=p.id AND p.data_soggiorno>="'.date('Y-m-d',$start).'" AND p.data_soggiorno<="'.date('Y-m-d',$end).'") as conto_pratiche';



siete mai incappati in un problema di questo tipo? Visto che la query non è solo questa ed ho altri pezzi di codice, mi farebbe fatica riscriverla tutta a mano in sql.

l’ultima volta che mi è successo ho dovuto mettere count maiuscolo e senza spazi tra count e la sua parentesi.

e idem per distinct

ma non era una subquery

ho risolto usando la sintassi array anzichè la modalità stringa, grazie ad una risposta avuta su github. La dritta è stata buona!

quindi il mio codice è diventato:




$criteria1->select = array(

   '*',

   '(SELECT COUNT(DISTINCT data_soggiorno,programma_id) FROM guida as g,pratica as p WHERE t.id=g.utente_id AND g.pratica_id=p.id AND p.data_soggiorno>="'.date('Y-m-d',$start).'" AND p.data_soggiorno<="'.date('Y-m-d',$end).'") as conto_pratiche',

  ...

  ...

  ...

);