Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 14/10/2011, 11h54   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 13
Points : 2
Points : 2
Par défaut Activités confirmées et requête SQL

Bonjour,

Je dois compter les activités qui doivent être confirmées, c'est à dire les activités dont la date est <= 20 jours de la date du jour.
A cette somme, je dois soustraire les activités qui sont déjà confirmées (elles sont dans une autre table)

Mon objectif est d'annoncer si il reste des activités à confirmer.

mes tables :
activites(num_activite, intitule,date,...)
confirmations(num_confirmation, num_activite,date,qui)

Voici le requête que je test :
Code :
1
2
3
4
5
6
 
SELECT COUNT( activites.num_activite ) 
FROM activites, confirmations
WHERE activites.num_activite = confirmations.num_activite
AND TO_DAYS( NOW())- TO_DAYS( date1 )<=20
AND activites.date1 <='$datedujour'
Cette requête me retourne la ou les activités confirmées donc l'inverse de ce que je désire.

Avez-vous une idée pour modifier la requête ?

Je vous remercie +++
nicodespiennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h02   #2
Membre habitué
 
Avatar de rinuom99
 
Étudiant
Inscription : août 2007
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 238
Points : 125
Points : 125
Envoyer un message via MSN à rinuom99
essayer avec ça :

Code :
1
2
3
SELECT  COUNT( activites.num_activite )
FROM activites, confirmations
WHERE activites.num_activite != confirmations.num_activite
__________________
Si tu peux voir détruit l'ouvrage de ta vie.
Et sans dire un seul mot te mettre à rebâtir,
Tu seras un Homme, mon fils.
rinuom99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h11   #3
Invité de passage
 
Inscription : septembre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 13
Points : 2
Points : 2
Par défaut requete activités

Bonjour et merci,

Voici le résultat : 124976 ??

merci

Citation:
Envoyé par rinuom99 Voir le message
essayer avec ça :

Code :
1
2
3
SELECT  COUNT( activites.num_activite )
FROM activites, confirmations
WHERE activites.num_activite != confirmations.num_activite
nicodespiennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h19   #4
Membre habitué
 
Avatar de rinuom99
 
Étudiant
Inscription : août 2007
Messages : 238
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2007
Messages : 238
Points : 125
Points : 125
Envoyer un message via MSN à rinuom99


pourquoi tu n'ajoute pas un champ dans la table activites pour indiquer si l'activité est confirmée ou non !!
__________________
Si tu peux voir détruit l'ouvrage de ta vie.
Et sans dire un seul mot te mettre à rebâtir,
Tu seras un Homme, mon fils.
rinuom99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h25   #5
Invité de passage
 
Inscription : septembre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 13
Points : 2
Points : 2
Par défaut re

Les tables sont utilisées comme ça, d'autres requêtes fonctionnent et ajouter un champ nécessiterai pas mal de modifications.

Merci

Citation:
Envoyé par rinuom99 Voir le message


pourquoi tu n'ajoute pas un champ dans la table activites pour indiquer si l'activité est confirmée ou non !!
nicodespiennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 13h59   #6
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 809
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 809
Points : 1 524
Points : 1 524
C'est une opération sur une fonction de regroupement que tu as besoin.

Donc ce n'est pas en clause WHERE qu'il faut utiliser :
Code :
1
2
TO_DAYS( NOW())- TO_DAYS( date1 )<=20
AND activites.date1 <='$datedujour'
Mais en clause HAVING, ainsi l'opération COUNT() sera appliquée à partir de ce tri.

Code sql :
1
2
3
4
5
SELECT  COUNT( activites.num_activite )
FROM activites, confirmations
WHERE activites.num_activite != confirmations.num_activite
HAVING TO_DAYS( NOW())- TO_DAYS( date1 )<=20
AND activites.date1 <='$datedujour'
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 14h34   #7
Invité de passage
 
Inscription : septembre 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 13
Points : 2
Points : 2
Par défaut re

Voici le message du serveur :
#1054 - Champ 'date1' inconnu dans having clause

pour la requete :

Code :
1
2
3
4
5
6
 
SELECT  COUNT( activites.num_activite )
FROM activites, confirmations
WHERE activites.num_activite != confirmations.num_activite
HAVING TO_DAYS( NOW())- TO_DAYS( date1 )<=20
AND activites.date1 <='2011-10-14'
Citation:
Envoyé par transgohan Voir le message
C'est une opération sur une fonction de regroupement que tu as besoin.

Donc ce n'est pas en clause WHERE qu'il faut utiliser :
Code :
1
2
TO_DAYS( NOW())- TO_DAYS( date1 )<=20
AND activites.date1 <='$datedujour'
Mais en clause HAVING, ainsi l'opération COUNT() sera appliquée à partir de ce tri.

Code sql :
1
2
3
4
5
SELECT  COUNT( activites.num_activite )
FROM activites, confirmations
WHERE activites.num_activite != confirmations.num_activite
HAVING TO_DAYS( NOW())- TO_DAYS( date1 )<=20
AND activites.date1 <='$datedujour'
nicodespiennes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 18h29   #8
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 809
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 809
Points : 1 524
Points : 1 524
Et donc ?
Le message d'erreur est en français tout de même ! On va mettre cela sur le coup du dernier jour de la semaine.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est actuellement 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 07h17.


 
 
 
 
Partenaires

Hébergement Web