|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
Bonjour à tous, j'ai un problème comme cela, le résultat de ma requête affiche toujours null:
Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Tes sous-requêtes doivent être entourées de parenthèses et non de quotes. Là elles sont juste traitées comme des chaines ..
|
|
|
00
|
|
|
#3 | |||
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
Et j'ai fait la modification comme ceci:
Code :
Citation:
|
|||
|
|
00
|
|
|
#4 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
C'est normal, tes sous-requêtes ne doivent renvoyer qu'une seule colonne (champ dans ton SELECT) de type DATE.
|
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Et si tu nous donnais le schéma de ta table, un petit exemple de son contenu et ce que tu souhaites faire ? Ça serait plus facile pour t'aider...
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
Voici la structure de la table:
pointage Colonne Type Null Défaut DatePointage timestamp Non CURRENT_TIMESTAMP TypePointage varchar(200) Non Immatricule int(4) Non DateExacte varchar(10) Non ID_Pointage bigint(20) Non up int(2) Non duree int(11) Non |
|
|
00
|
|
|
#7 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
|
|
|
00
|
|
|
#8 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Il faut passer par des jointures, pour n'avoir qu'une seule date d'entrée et de sortie par ligne dans la fonction DATEDIFF.
Essaie la requête suivante : Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
Cette dernière donne un résultat mais ne correspond pas à des valeurs correctes.
Il fait boucler un matricule et affiche des résultats: -18 à 18 et n'affiche pas toutes les dates dans la table |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
On peut avoir un jeu de données ?
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
voici un exemple de résultat de la requête:
Lignes: 30 Immatricule dateExacte duree 1081 01/04/2011 20 1081 01/04/2011 18 1081 01/04/2011 17 1081 01/04/2011 16 1081 01/04/2011 15 1081 01/04/2011 14 1081 01/04/2011 13 1081 01/04/2011 11 1081 01/04/2011 10 1081 01/04/2011 9 1081 01/04/2011 8 1081 01/04/2011 7 1081 01/04/2011 6 1081 01/04/2011 4 1081 01/04/2011 3 1081 01/04/2011 2 1081 01/04/2011 1 1081 01/04/2011 0 1081 01/04/2011 -14 1081 01/04/2011 -15 1081 01/04/2011 -17 1081 01/04/2011 -18 1081 01/04/2011 974 1081 01/04/2011 -20 1081 01/04/2011 -21 1081 01/04/2011 -22 1081 01/04/2011 -25 1081 01/04/2011 -26 1081 01/04/2011 -27 1081 01/04/2011 -28 Il fait un boucle sur chaque matricule et je ne comprend ce qu'il affiche non plus |
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
En fait, ce qu'il nous faut, c'est le contenu de la table (ou un extrait) et le résultat que tu attends en sortie de requête.
Là, le problème vient certainement du fait que la jointure sur l'immatricule n'est pas suffisante pour distinguer l'entrée et la sortie qui lui correspond. Mais ça, on ne peut pas le deviner. Comment on sait à quelle entrée correspond une sortie (ou l'inverse) ?
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
voici un extrait de la table:
DatePointage TypePointage Immatricule DateExacte ID_Pointage up duree 2011-05-05 06:42:05 ENTREE 16 05/05/2011 79322 0 0 2011-05-05 06:42:06 ENTREE 898 05/05/2011 79323 0 0 2011-05-05 06:42:07 ENTREE 1081 05/05/2011 79324 0 0 2011-05-05 06:42:08 ENTREE 1352 05/05/2011 79325 0 0 2011-05-05 15:36:04 SORTIE 898 05/05/2011 79675 0 0 2011-05-05 15:36:14 SORTIE 1081 05/05/2011 79683 0 0 2011-05-05 17:30:12 SORTIE 16 05/05/2011 79789 0 0 2011-05-05 17:33:30 SORTIE 1352 05/05/2011 79889 0 0 et je veux faire la différence entre entree et sortie merci d'avance |
|
|
00
|
|
|
#14 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Avec le jeu de données que tu fournis, j'obtiens bien un résultat cohérent, mais il est préférable de remplacer DATEDIFF par la fonction TIMEDIFF.
Cela dit, quand je regarde le résultat que tu donnes, je pense que la jointure entre entrée et sortie est incomplète, et qu'il faut ajouter dans la condition la date exacte. Essaie comme ça : Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
10
|
|
|
#15 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
Merci ça marche
|
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
en fait, je veux qu'il apparaissent en minute mais pas en heure!
est ce qu'il y a un code qui fait cette conversion? |
|
|
00
|
|
|
#17 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Essaie avec la fonction TIME_TO_SEC(time), en divisant par 60 pour passer de secondes en minutes :
Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
10
|
|
|
#18 |
|
Invité régulier
![]() Étudiant Inscription : octobre 2007 Messages : 21 ![]() |
Il marche bien merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com