[Db] subquery e date
Domenico L.
domenico.lorusso a pleiade.it
Mer 30 Maggio 2007 11:02:54 CEST
Marcello Vezzelli ha scritto:
> Domenico L. ha scritto:
>>
>> il group by sul date-format altrimenti ti fa un group by al secondo!
>> per gli ordinamenti devi sbaterti un po' di più ma non è difficile
>
> Per complicare la cosa....
Ma sei sicuro di avere solo delle date e non dei datetime?
> Dal punto di vista didattico, se volessi aggiungere una colonna con i
> assegnati+chiusi lo stesso giorno?
> Si riesce a fare senza subquery?
la soluzione semplice è quella giusta:
select date(data) as data, sum(if(stato=1,1,0)) as assegnato,
sum(if(stato=2,1,0)) as chiuso,
sum(if(stato=1,1,0)) + sum(if(stato=2,1,0)) as ass_chiuso, #-> i dbms,
anche quelli meno seri,
# dovrebbero fare un controllo sull'identità delle proiezioni,
#cioè si rende conto che sum(...) sono già calcolati,
#quindi questa dovrebbe essere la soluzioni migliore in generale
#oppure
sum(if(stato=1 or stato=2,1,0)) as ass_chiuso1,
#oppure
sum(if(stato>0)) as ass_chiuso2 ,
#oppure in questo caso
count(*) as ass_chiuso2
from codici
where stato>0
group by date(data)
Studiare il sql (3 anche mysql ne incorpora una buona parte) semplifica
di molto la vita del programmatore.
Altrimenti tanto vale usare i file :-)
ciao
--
Domenico L. icq: 645 44 861 - msn: strahd a jumpy.it
per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]
Maggiori informazioni sulla lista
Db