Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 03/11/2011, 19h20   #1
Nouveau Membre du Club
 
Avatar de fabpeden
 
Étudiant
Inscription : mars 2007
Messages : 123
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 123
Points : 26
Points : 26
Par défaut Requête avec booléen

Bonsoir à tous,

J'ai un petit soucis avec une de mes requête SQL sous Access.

En fait, j'ai une base de données qui enregistre des valeurs toutes les 15s sous la forme suivante :

02/11/2011 10:23:00 Vrai
02/11/2011 10:23:15 Vrai
02/11/2011 10:23:30 Faux
.....

02/11/2011 20:23:00 Non

Les vrai/faux représentent l'image d'une machine en fonctionnement (Vrai en fonctionnement, Faux en arrêt)

Mon but est de compter le nombre de Vrai et de faire une moyenne sur 1 H.

Ex : si j'ai 25 Vrai (et comme j'ai 1 enregistrement toutes les 15s soit 240/h), je voudrai avoir 25/240 = 0.104.

Mon idée de départ était de compter les lignes où j'ai Vrai sur chaque heure et le nombre de lignes de chaque heure (qui doit être à 240 mais si jamais un enregistrement saute, je veux quand même compter).

J'ai fait ces 2 requêtes :

Code :
1
2
3
4
5
6
7
8
9
10
 
SELECT COUNT(*) AS NB_LIGNE_HEURE, Hour(ecoEnergie.DATE_HEURE) AS HEURE
FROM ecoEnergie
GROUP BY Hour(ecoEnergie.DATE_HEURE)
 
 
SELECT COUNT(*) AS TPS_FCT, Hour(ecoEnergie.DATE_HEURE) AS HEURE
FROM ecoEnergie
WHERE ecoEnergie.HDM_PPE_HYD_1 = Yes
GROUP BY Hour(ecoEnergie.DATE_HEURE);
qui fonctionnent bien mais je n'arrive pas à rassembler les résultats.

Avec la 1ère j'ai :
Heure NB_LIGNE_HEURE
13 14
14 20
15 60
16 4

Heure TPS_FCT
13 5
14 4

Et mon but est d'avoir :

Heure TPS_FCT NB_LIGNE_HEURE
13 5 14
14 4 20
15 0 60
16 0 4

J'ai regardé du côté des UNIONS... mais rien ne correspond vraiment, si vous aviez une piste merci d'avance.
fabpeden est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 20h16   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonsoir,

je tenterais bien l'astuce:

Code sql :
1
2
3
4
5
6
SELECT 
   Hour(ecoEnergie.DATE_HEURE) AS HEURE,
   Sum ( iif(ecoEnergie.HDM_PPE_HYD_1 = Yes,1,0)) AS TPS_FCT,
   COUNT(*) AS NB_LIGNE_HEURE
FROM ecoEnergie
GROUP BY Hour(ecoEnergie.DATE_HEURE);
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/11/2011, 10h23   #3
Nouveau Membre du Club
 
Avatar de fabpeden
 
Étudiant
Inscription : mars 2007
Messages : 123
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 123
Points : 26
Points : 26
Bonjour,

Merci beaucoup pour votre aide, cela à l'air de fonctionner.

Par contre, j'ai un autre soucis. J'ai quelque peu modifier la requête.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SELECT Sum(TPS_FCT_HEURE)
FROM (SELECT (TPS_FCT/NB_LIGNE_HEURE) AS TPS_FCT_HEURE
FROM
(
SELECT 
   Hour(ecoEnergie.DATE_HEURE) AS HEURE,
   Sum ( iif(ecoEnergie.KW_GEN_2 <> 0,1,0)) AS TPS_FCT,
   COUNT(*) AS NB_LIGNE_HEURE
FROM ecoEnergie
WHERE ecoEnergie.DATE_HEURE BETWEEN '02/11/2011 14:00:00' AND '02/11/2011 16:00:00'
GROUP BY Hour(ecoEnergie.DATE_HEURE)
)
);
Sans l'expression BETWEEN, la requête fonctionne bien. Si je rajoute datevalue(DATE_HEURE) BETWEEN '02/11/2011' AND '02/11/2011' cela fonctionne bien également.

Par contre, dès que je rajoute l'heure, j'ai une erreur de la part d'access (type de données incompatibles).

Merci
fabpeden est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h56.


 
 
 
 
Partenaires

Hébergement Web