Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2007, 15h07   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 2
Points : 1
Points : 1
Par défaut denombrement par mois entre 2 dates

Bonjour,

j'aimerais savoir si quelqu'un connait une solution pour denombrer le nombre d'enregistrement par mois entre 2 dates en incluant 0 dans les mois ou il n'y a pas de resultats a retourne par le count().

En gros j'ai ma requete qui ressemble grosso modo a :

select count(incident.id) as nbincident
from incident
where to_char(incident.debutincident,'YYYYMM') between '200601' and '200701'
group by to_char(incident.debutincident,'YYYYMM')


bien entendu cette requete me renvoie tous les incidents par mois ou se produit des incidents mais j'aimerai egalement avoir les lignes des mois ou il n'y a pas d'incident.
Je peux le faire par programmation mais y a-t-il un moyen d'avoir ce resultat par une simple requete sql ?

Merci
plc2502 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 15h49   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 793
Points : 17 793
Le seul moyen pratique et efficace (donc performant) est d'ajouter à votre modèle des tables de calendrier comme décrit dans l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/gestiontemps/

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 15h52   #3
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
CREATE TABLE d(d date);
INSERT INTO d VALUES (date '2007-01-01');
INSERT INTO d VALUES (date '2007-02-01');
INSERT INTO d VALUES (date '2007-03-01');
INSERT INTO d VALUES (date '2007-04-01');
INSERT INTO d VALUES (date '2007-05-01');
INSERT INTO d VALUES (date '2007-06-01');
INSERT INTO d VALUES (date '2007-07-01');
INSERT INTO d VALUES (date '2007-08-01');
INSERT INTO d VALUES (date '2007-09-01');
INSERT INTO d VALUES (date '2007-10-01');
INSERT INTO d VALUES (date '2007-11-01');
INSERT INTO d VALUES (date '2007-12-01');
 
CREATE TABLE incident(id number, debut date);
 
INSERT INTO incident VALUES (1,sysdate);
 
SELECT d,count(id) 
FROM d LEFT JOIN incident ON (d=trunc(debut,'MM')) 
GROUP BY d 
ORDER BY d;
 
D          COUNT(ID)
--------- ----------
01-JAN-07          0
01-FEB-07          1
01-MAR-07          0
01-APR-07          0
01-MAY-07          0
01-JUN-07          0
01-JUL-07          0
01-AUG-07          0
01-SEP-07          0
01-OCT-07          0
01-NOV-07          0
01-DEC-07          0
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2007, 16h07   #4
Invité de passage
 
Inscription : décembre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 2
Points : 1
Points : 1
Genial,

j'y avais pense mais bon la ca me confirme .

Hehe je vois que beaucoup de personne se galere sur la gestion du temps et cet article est une mine d'or.

merci.
plc2502 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h55.


 
 
 
 
Partenaires

Hébergement Web