[Db] subquery e date
Marcello Vezzelli
marcello a vezz.it
Mer 30 Maggio 2007 13:46:30 CEST
Marcello Vezzelli ha scritto:
> Domenico L. ha scritto:
>> Marcello Vezzelli ha scritto:
>>> Domenico L. ha scritto:
>>>
>>> Si scusami è che quando ottengo quello che vorrei, mi viene sempre
>>> da chiedermi "e se volessi anche..." e non è detto che questo
>>> procedimento sia logico.
>>> Tra l'altro questi "requisiti" sono fini a se stessi, è proprio una
>>> mia curiosità.
>>>
>>> Immaginiamo di avere la tabella di cui prima, e di voler sapere:
>>> - quanti ticket aperti in un tal giorno
>>> - quanti ticket chiusi in un tal giorno
>>> - quanti ticket aperti e chiusi nello stesso giorno
Penso di esserci arrivato:
select SUM(IF(c1.stato=1,1,0)) as assegnati,
SUM(IF(c2.stato=2,1,0)) as chiusi,
SUM(IF(c2.stato=2 AND date(c1.data)=date(c2.data_chiuso),1,0)) as asschiusi
from
codici as c1
left join
codici as c2
on (c1.id=c2.id)
where c1.stato=1 or c2.stato=2
group by date(c1.data)
Autojoin su codici, imponendo stato=1 per c1 OPPURE stato=2 per c2.
Da c1 conto quelli con stato 1, da c2 conto quelli con stato 2, poi
controllo se c1.data=c2.data_chiuso e conto quelli chiusi nello stesso
giorno di apertura.
La media mi sa che va calcolata con una query separata, perché è diverso
il raggruppamento.
select date(data_chiuso),floor(AVG(data_chiuso-data)) from codici
where stato=2
group by date(data_chiuso)
Una roba così.
Grazie delle dritte!
Ciao
Marcello
Maggiori informazioni sulla lista
Db