Requête sur MySQL
Fermé
hakim_fth
Messages postés
138
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
5 octobre 2023
-
26 févr. 2022 à 23:53
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 - 28 févr. 2022 à 12:02
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 - 28 févr. 2022 à 12:02
A voir également:
- Requête sur MySQL
- Mysql community server - Télécharger - Bases de données
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
- Requête sql pix - Forum Python
7 réponses
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
Ambassadeur
1 551
27 févr. 2022 à 09:43
27 févr. 2022 à 09:43
bonjour,
peux-tu donner un exemple plus complexe?
peux-tu donner un exemple plus complexe?
hakim_fth
Messages postés
138
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
5 octobre 2023
27 févr. 2022 à 15:47
27 févr. 2022 à 15:47
Bonjour,
Je ne trouve pas plus complexe que ça pour le moment, j'ai beaucoup essayer de trouver la requête mais envain
Je ne trouve pas plus complexe que ça pour le moment, j'ai beaucoup essayer de trouver la requête mais envain
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
1 551
27 févr. 2022 à 18:47
27 févr. 2022 à 18:47
l'exemple est trop court, il ne permet pas de comprendre ce que tu veux faire.
ajoute des éléments.
ajoute des éléments.
hakim_fth
Messages postés
138
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
5 octobre 2023
27 févr. 2022 à 21:16
27 févr. 2022 à 21:16
Bonsoir yg_be,
J'ai une table nommée "pointage" sur MySQL comme le montre l'image ci-dessous
Je souhaite afficher le résultat ci-dessous depuis la table pointage (J'utilise PHP)
J'ai une table nommée "pointage" sur MySQL comme le montre l'image ci-dessous
Je souhaite afficher le résultat ci-dessous depuis la table pointage (J'utilise PHP)
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
1 551
27 févr. 2022 à 21:46
27 févr. 2022 à 21:46
Si tu utilises PHP, tu peux facilement réaliser cela avec un peu de SQL et un peu de PHP.
A condition d'apprendre l'un et l'autre.
A condition d'apprendre l'un et l'autre.
hakim_fth
Messages postés
138
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
5 octobre 2023
27 févr. 2022 à 21:52
27 févr. 2022 à 21:52
Je n'ai pas de problème par rapport à PHP, mais le problème que j'ai c'est que je ne trouve toujours pas la requête convenable pour le faire. Si tu peux m'aider :)
yg_be
Messages postés
23331
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 novembre 2024
1 551
28 févr. 2022 à 08:56
28 févr. 2022 à 08:56
La requête suivante te fournira toutes les données, tu n'auras pas de problème à programmer en PHP pour les présenter comme tu le souhaites.
SELECT matricule, date, statut FROM pointage ORDER BY matricule, date, statut
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
vu que les champs Entree, Pause Sortie, Pause Entree n'existent pas dans la table comment comptez vous les obtenir(d'où viennent ces données)?
Si c'est une valeur calculée il faut inclure le calcul, si c'est une valeur d'une autre table il faut que celle ci soit liées(voir les jointures de table en SQL).
Sinon dans votre requête(dans le 1er message) si vous voulez uniquement une ligne (ou 2) il faut utiliser la clause WHERE pour ne pas obtenir toutes les données de la table.
Je ne comprends pas non plus le group by (vu que vous désirez une ligne de données ce n'est forcément pas un groupe) et encore moins votre utilisation de plusieurs alias...
En général une table seule ce n'est pas suffisant(ou très mal organisé). Pensez avant tout à organiser vos entités de données(qui donneront les tables) de façon à ce que le programme puisse être efficient:
moins de développement, fonctionnement clair et efficace qui empêche toute erreur dans la table et surtout correspond aux nécessités de votre système d'information.
Bref penser l'organisation des données avant de faire les tables qui doivent être le résultat de ce que vous désirez obtenir.
vu que les champs Entree, Pause Sortie, Pause Entree n'existent pas dans la table comment comptez vous les obtenir(d'où viennent ces données)?
Si c'est une valeur calculée il faut inclure le calcul, si c'est une valeur d'une autre table il faut que celle ci soit liées(voir les jointures de table en SQL).
Sinon dans votre requête(dans le 1er message) si vous voulez uniquement une ligne (ou 2) il faut utiliser la clause WHERE pour ne pas obtenir toutes les données de la table.
Je ne comprends pas non plus le group by (vu que vous désirez une ligne de données ce n'est forcément pas un groupe) et encore moins votre utilisation de plusieurs alias...
En général une table seule ce n'est pas suffisant(ou très mal organisé). Pensez avant tout à organiser vos entités de données(qui donneront les tables) de façon à ce que le programme puisse être efficient:
moins de développement, fonctionnement clair et efficace qui empêche toute erreur dans la table et surtout correspond aux nécessités de votre système d'information.
Bref penser l'organisation des données avant de faire les tables qui doivent être le résultat de ce que vous désirez obtenir.
hakim_fth
Messages postés
138
Date d'inscription
samedi 21 juin 2008
Statut
Membre
Dernière intervention
5 octobre 2023
27 févr. 2022 à 22:13
27 févr. 2022 à 22:13
Salut,
Merci Rototo pour ton retour,
Pour Entree, Sortee, ... ce sont les codes du statut
1 = Entree
2 = Pause Sortie
3 = Pause Entree
4 = Sortie
J'espère que c'est claire maintenant. C'est une seule table c'est juste le libellé statut qui change
Merci Rototo pour ton retour,
Pour Entree, Sortee, ... ce sont les codes du statut
1 = Entree
2 = Pause Sortie
3 = Pause Entree
4 = Sortie
J'espère que c'est claire maintenant. C'est une seule table c'est juste le libellé statut qui change
jordane45
Messages postés
38289
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 novembre 2024
4 703
Modifié le 28 févr. 2022 à 12:03
Modifié le 28 févr. 2022 à 12:03
Bonjour,
NB: Faudra désactiver le ONLY_FULL_GROUP_BY pour que ça fonctionne
https://stackoverflow.com/questions/23921117/disable-only-full-group-by
SELECT T.matricule , T.date , MAX(T.ENTREE) AS E , MAX(T.PAUSE_SORTIE) AS PS , MAX(T.PAUSE_ENTREE) AS PE , MAX(T.SORTIE) AS S FROM ( SELECT matricule ,date ,IF(statut=1 , 1 , "*") AS ENTREE ,IF(statut=2 ,2,"*") AS PAUSE_SORTIE ,IF(statut=3,3,"*") AS PAUSE_ENTREE ,IF(statut=4,4,"*") AS SORTIE FROM pointage ) T GROUP BY T.matricule, T.date
NB: Faudra désactiver le ONLY_FULL_GROUP_BY pour que ça fonctionne
https://stackoverflow.com/questions/23921117/disable-only-full-group-by