Bonjour j'ai un table log4j qui contient comme variable :
time date
warning char(5)
class varchar(50)
message text
environment varchar(10)
server_name varchar(20)
id bigint(20)
j'aimerais constituer un tableau qui me fasse classer par jour le type de warning (debut, info, warn, error, fatal). J'arrive a créer le tableau je ne sais afficher que la somme sur un ensemble de jour et pas par jour. Pourriez vous m'aider. Je ne suis pas très doué en SQL et je ne vois pas comment le realiser sans les boucles :
Voila mon code :
et voila ce qui s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select time as day, (select count(*) from log4j where warning='debug') as debug, (select count(*) from log4j where warning='info') as info, (select count(*) from log4j where warning='warn') as warn , (select count(*) from log4j where warning='error') as error, (select count(*) from log4j where warning='fatal') as fatal from log4j where time BETWEEN '2006-10-01' AND '2006-10-31' group by time;
alors que cela devrait etre :+------------+-------+------+------+-------+-------+
| day | debug | info | warn | error | fatal |
+------------+-------+------+------+-------+-------+
| 2006-10-03 | 0 | 3 | 0 | 0 | 3 |
| 2006-10-04 | 0 | 3 | 0 | 0 | 3 |
| 2006-10-10 | 0 | 3 | 0 | 0 | 3 |
| 2006-10-12 | 0 | 3 | 0 | 0 | 3 |
| 2006-10-14 | 0 | 3 | 0 | 0 | 3 |
| 2006-10-18 | 0 | 3 | 0 | 0 | 3 |
+------------+-------+------+------+-------+-------+
Merci pour vos réponses, je ne sais plus ou donner de la tete+------------+-------+------+------+-------+-------+
| day | debug | info | warn | error | fatal |
+------------+-------+------+------+-------+-------+
| 2006-10-03 | 0 | 1 | 0 | 0 | 1 |
| 2006-10-04 | 0 | 1 | 0 | 0 | 0 |
| 2006-10-10 | 0 | 0 | 0 | 0 | 1 |
| 2006-10-12 | 0 | 1 | 0 | 0 | 0 |
| 2006-10-14 | 0 | 0 | 0 | 0 | 1 |
| 2006-10-18 | 0 | 0 | 0 | 0 | 0 |
+------------+-------+------+------+-------+-------+
[Titre édité par Maximilian]
Partager