Page 1 sur 3
requete SQL d'une date
Posté : 20 juin 2005, 09:13
par Pasti$
Bonjour,
d'abord excusez moi pour le titre du suejt mais il faut plusieurs lignes pour m'expliquer.
Je voudrais créer une requete (si possible) une requete SQL qui me permets de délimiter par le choix de 2 dates.
Pour etre plus précis, j'ai un questionnaire que les gens remplissent. Je veux établir des statistiques par semaine. Dans ma table j'ai un champ date.
Exemple : selectionne moi les totaux de ma table reponses pour les gens qui ont rempli le questionnaire du 21/06 au 28/06.
Voilà si vous voulez d'autres explications n'hésiter pas.
MERCI
Posté : 20 juin 2005, 09:58
par Pasti$
Si personne ne répond cela veut peut etre dire que je ne peux pas le faire !!

Posté : 20 juin 2005, 10:23
par zeus
Avec BETWEEN, tu doit pouvoir faire ce que tu veux
Code : Tout sélectionner
SELECT * FROM reponse_formulaire WHERE date BETWEEN 2005-21-06 AND 2005-28-06
Posté : 20 juin 2005, 10:25
par sausee2005
d'ac avec zeus avec between ça devrait marcher
Posté : 20 juin 2005, 10:26
par Pasti$
si on ne peut pas faire comme je pense faire peut on ffaire sous la forme
Code : Tout sélectionner
SELECT total_questionnaire FROM reponses WHERE date_actuelle='2005-20-06' , date_actuelle='2005-18-06' ;
Posté : 20 juin 2005, 10:28
par Pasti$
Ah ok j'avais pas vu j'écrivais mon message en meme temps
MERCI
Posté : 20 juin 2005, 10:28
par sausee2005
non je pense pas il te marque pas un message d'erreur parce que la tu utilises 2 champs identiques (redondance)
Posté : 20 juin 2005, 10:29
par sausee2005
et même si ça marcheraît il te prendrais en compte que ses dates là pas l'écart
Posté : 20 juin 2005, 10:30
par zeus
Le fait d'utiliser 2 champs identiques dans une requete SQL ne va pas déclencher une erreur mais va juste bloquer tous les résultats
la requete de Pasti$ cherche les questionnaires dont la date de réponse est le 21-06-2005 et le 28-06-2005. Comme c'est impossible qu'un formulaire soit répondu 2 jours, la requete ne retournera aucun résultat
Posté : 20 juin 2005, 10:54
par Pasti$
Voici ma requete qui ne retourne RIEN
<?php
mysql_select_db("formulaire");
$semaine = mysql_query ("SELECT SUM(total_questionnaire) FROM reponses WHERE date_reponse BETWEEN 2005-06-13 AND 2005-06-21") ;
$sem=mysql_result($semaine,0); // on choisit les dates limites et on fait la somme de total_questionnaire
echo $sem;
?>
cette requete ne marche pas
Posté : 20 juin 2005, 10:56
par sausee2005
$semaine = mysql_query ("SELECT SUM(total_questionnaire) FROM reponses WHERE date_reponse BETWEEN 2005-06-13 AND 2005-06-21;") ;
essaie ça oublie du point virgule
Posté : 20 juin 2005, 10:59
par zeus
LE ; ne change rien. Il 'est utile que si tu enchaine les requetes.
Il me semble que le format des dates c'est aaaa/jj/mm
Mais on essayer un autre format
$semaine = mysql_query ("SELECT SUM(total_questionnaire) FROM reponses WHERE date_reponse BETWEEN #13/06/05# AND #21/06/05#") ;
Posté : 20 juin 2005, 11:02
par sausee2005
ah exact tu doit avoir raison j'avais même pas vu le manque des #
Posté : 20 juin 2005, 11:05
par zeus
les #, c'est juste pour indiquer qu'on quitte le format internationnal
Après, je pense qu'on doit pouvoir écrire 16/06/2005 mais je suis sûr que #16/06/05# fonctionne
Posté : 20 juin 2005, 11:08
par sausee2005
je savais pas moi on m'appris qu'il fallait toujours mettre le ; à la fin de la requête et les # avant et aprés une date et que le format devait toujours être mm/dd/aaaa