|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 47 ![]() |
Bonjour à tous,
Je cherche à créer une requête qui sélectionne le nombre d’occurrences de trois activités sur une tranche horaire donnée, et ce sur une journée. Basiquement, voilà comment je récupère les trois activités sur une seule tranche horaire : Code :
De plus, je vais devoir filtrer le tout, c'est à dire quelque chose comme ça : Code :
Auriez-vous une solution plus optimale ? |
||||
|
|
00
|
|
|
#2 | ||||
![]() ![]() |
Pour avoir tes 24 tranches horaires et pour chaque activité, tu peux faire ceci :
Code :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||||
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 47 ![]() |
Merci de la réponse très précise !
Grâce à toi j'ai pu découvrir les LEFT OUTER JOIN que je ne connaissais pas. Je testerais ça demain matin au boulot, et je reviens vers toi si ça fonctionne. Simple question, pourquoi tous les LEFT OUTER JOIN sont fait sur t1 ? (et non t2 et t3 pour les deux derniers) |
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
La seconde sous-requête a évidemment pour alias t2 et la troisième t3 !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 47 ![]() |
La requête marche niquel, je te remercie CinePhil, il fallait la sortir cette requête !!!
Pour mon "WHERE" global (par exemple l'utilisateur via un formulaire pourra sélectionner un laboratoire spécifique, ou un correspondant...), je peux le mettre où ? Comme de toute façon les filtres seront appliqués en php, je pense les répercuter dans chaque WHERE, après SANG_LOCAL. Je mettrais simplement 3 fois la variable. ![]() Mais s'il existe une structure plus optimale, je suis toujours preneur. |
|
|
00
|
|
|
#6 |
![]() ![]() |
je crains qu'il faille effectivement mettre tes autres conditions dans les trois WHERE.
Les trois sous-requêtes sont nécessaires à cause des 3 couples de colonnes sur lesquelles portent le regroupement et le calcul. Avec un autre modèle de données, tu aurais pu avoir une requête plus simple.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2010 Messages : 47 ![]() |
Rebonjour,
je reviens vers toi car il m'arrive une chose étonnante. La requête fonctionne parfaitement sur phpmyadmin, mais ne passe pas sous PHP ! L'erreur retournée est : Code :
Erreur You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near 'INSERT INTO heure VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(1' at line 2 EDIT : J'ai résolu le problème en séparant mes requêtes dans 4 variables différentes ! (Création d'une table, intégration des données, sélection, suppression de la table) |
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Il n'y a pas une requête mais plusieurs.
Dans phpMyAdmin, tu peux balancer le paquet complet mais dans un code PHP, il faut envoyer chaque requête séparément, ce que fait le programme phpMyAdmin d'ailleurs lui-même. Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
Copyright © 2000-2012 - www.developpez.com