Ciao
chiedo il vostro aiuto, dato che siete tutti molto ferrati in materia

allora
io ho una tabella 'tab_valori'

con questi campi:

Codice PHP:
  `iddouble default NULL,
  `
datadatetime default NULL,
  `
valoredouble(6,2) default NULL
questi dei valori di esempio

Codice PHP:
INSERT INTO `tab_valori` (`id`, `data`, `valore`) VALUES
(101'2012-08-05 00:03:15'1.70),
(
101'2012-08-05 02:50:22'1.80),
(
101'2012-08-05 02:46:39'2.30),
(
101'2012-08-06 18:26:05'3.00),
(
101'2012-08-07 00:11:22'1.30),
(
101'2012-08-06 23:54:22'1.50),
(
101'2012-08-07 05:12:33'0.90),
(
101'2012-08-07 12:32:54'2.60),
(
101'2012-08-07 13:16:51'2.30),
(
101'2012-08-08 22:37:10'2.00);
(
103'2012-08-05 03:52:23'1.60),
(
103'2012-08-05 23:04:58'1.60),
(
103'2012-08-07 03:04:22'1.50),
(
103'2012-08-07 14:38:02'2.20), 
mi servono i totali per giorno divisi per int(valore)

ad esempio, dovrebbe uscirmi (prendo solo l'id 103 per semplificare)

id data tot1x tot2x tot3x tot4x tot5x tot6x tot7x tot8x tot9x tot10x
103 2012-08-05 2 0 0 0 0 0 0 0 0 0
103 2012-08-07 1 1 0 0 0 0 0 0 0 0


al momento, dato che i valori vanno da 0.x a 10.x
e mi servono i totali per giorno divisi per int(valore)

faccio un giro del cavolo

ciclo da 0 a 10
for ($conta = 0; $conta <= 10; $conta++)
ed eseguo la query

Codice PHP:
$query  "SELECT id, cast(data as date) as giorno, count(*) AS totale FROM tab_valori ";
$query .= "WHERE id = '".$id."' AND `data` >= '$query_data_da' AND `data` <= '$query_data_a' ";
$query .= "AND valore >=".$conta." AND magn <".($conta+1)." ";
$query .= "group by giorno ORDER BY data ASC "
ovviamente questo procedimento lo ripeto per tutti gli id

e memorizzo i risultati in una tabella temp che ha questa struttura
id data tot1x tot2x tot3x tot4x tot5x tot6x tot7x tot8x tot9x tot10x

e poi da li me li pesco/lavoro


magari, voi che siete più competenti di me in query sql, mi aiutate a creare una query che mi tira fuori direttamente quello che serve, senza troppi giri

Web