[Risolto] Come Eseguire Un Count If ?

Ho una colonna ore, ed una tipoLavoro .

Sto cercando di contare una colonna solo se il valore è di un certo tipo




                $criteria = new CDbCriteria();

		

		$criteria->select = "COUNT(id) as lavoratori,

                                     COUNT( IF ( tipoLavoro = 1 ) ) as contaTipoUno,

  				     SUM(ore) as sommaOre,

		.....		




Naturalmente ho una variabile di classe [font="Courier New"]contaTipoUno[/font]

Ma ottengo una exception:

Ho una unica tabella coinvolta in questo SQL ! e il campo è scritto bene ed esiste …

… l’ho fatto decine di volte via mysql_query in php, ma … qualcosa im sfugge

Poco ortodosso, ma funzionale


                $criteria->select = "COUNT(id) as lavoratori,

                                     (select count(id) from t where tipoLavoro = 1) as contaTipoUno,

                                     SUM(ore) as sommaOre,

its absolutely correct.

thanks

eh eh … questo è più elegante , e ci sono arrivato da solo PER SBAGLIO !!!




SUM(lavoroId = 4) as contaUno,

SUM(lavoroId = 1) as contaUno,



mi sfugge su COSA si basa il funzionamento … credo che sia un SOMMA SE lavoroId = 4 …

… il mio problema è fare la somma per id IN (4,5,6). … questo ancora non va…

Allora prova


(sum(campo=2) + sum(campo=3) + sum(campo=4)) as conta

caspita, bastava pensarci, funziona a meraviglia !