[Requete] SQL dans une requète ? [Résolu/Fermé]

Signaler
Messages postés
122
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
17 octobre 2013
-
Messages postés
122
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
17 octobre 2013
-
Bonjour,

Je suis en stage dans une entreprise. On me demande, à partir d'une base de données access, de faire une autre base de données access ayant déjà des tables que j'ai passé en requêtes à partir de des tables que j'ai ramené de l'autre base de données.

Mais il y a une donnée que je ne sais pas comment avoir.

Explication : J'ai deux champs sous la forme : hhmmss. Un champ montrant le début de l'action de l'employé (WHPRTM) et la seconde montrant la fin de l'action (WHPCTM).
La requête est faite.

Mon problème : Il y a des actions qui vont commencer à : 20h37m28s (par exemple) et finir à 6h24m39s (sur deux équipes différentes bien sûr, l'une fini à 21h et l'autre commence à 5h du matin.). Mon résultat : Un nombre négatif.

Voici ma requête pour le moment :

SELECT dbo_DMPICKHR.*, Int(([WHPCTM]-[WHPRTM])/10000*60) AS DURMIN2
FROM dbo_DMPICKHR;

(Ne faites pas attention aux termes utilisés qui peuvent vous sembler bizarre.)

Peut-on rajouter, sur Access, une code SQL étant, par exemple :

If DURMIN2 < 0 Then
DURMIN2 = (24*3600) + DURMIN2
End If.

Si je peux le faire, comment le faire ? Je ne l'ai pas appris et je ne trouve rien sur internet ... Merci beaucoup.
(S'il y a une autre solution, merci de l'aide.)

J'espère avoir bien détaillé.

Cordialement,

progra

2 réponses

Bonjour,
Une solution serait d'introduire dans ta formule le calcul des heures sous la forme
If( HeureFin < HeureDebut ; ((24:00:00 - HeureDebut) + HeureFin) ; HeureFin - HeureDebut )

Je crois qu'il existe une autre possibilité par les modulos, mais celle-ci me parait plus facile à décrypter.
Bonne suite
Oui ! faute d'orthographe la fonction est iif( , , ) avec 2 fois " I "
Je m'en suis rendu compte après et je croyais que tu ferais la correction
Mais pourquoi 3 requêtes, il suffirait d'intercaler des champs intermédiaires. Avec la forme "Création" ou "Visuelle" de Access cela se fait très bien. Directement en SQL je ne saurai pas dire.
Messages postés
122
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
17 octobre 2013
48
2 I ... Ah d'accord ... (désolé je ne connaissais pas)
Et comment ça se passe avec " iif () " ?

Je dois partir travailler. A ce soir!
Messages postés
122
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
17 octobre 2013
48
ça fonctionne, merci beaucoup.
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
174
Hello,
Tu devrais chercher du côté des case/when :)

Bon courage
Messages postés
122
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
17 octobre 2013
48
Case When n'existe pas en Access 2007 à ce que j'ai vu ...
Case / when ?????
J'ignore! Peut être en Excel?