IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Requête sur champ date + champ durée


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Requête sur champ date + champ durée
    Bonsoir, je commence à désesperer sur une requete qui, je voudrais, interroge ma table devis_client en lui demander de retourner les enregistrements où le champ date_arrivee + champ duree = aujourd'hui

    J'ai essayé beaucoup de chose, celle qui me semble s'en rapprocher le plus est celle-ci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * DATE_ADD(`date-arrivee` ,INTERVAL `duree` DAY) AS `date_depart` FROM `Devis_Clients` LIMIT 0 , 30
    Bien entendu, ça ne marche pas, malheureusement l'erreur me retourne la requete complete comme erreur, sans plus de précision.
    Quelqu'un aurait-il la bonté de me mettre sur la voie s'il vous plait ?

  2. #2
    Membre confirmé Avatar de papyphp
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 438
    Points : 587
    Points
    587
    Par défaut
    Bonsoir,
    Et en mettant une virgule entre l'étoile et le DATE_ADD est-ce que ça ne marcherait pas mieux!
    Lu kinze d' awousse, la Vierje arandje û dusbrôle lu timp.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En effet Papyphp (merci beaucoup), comme quoi des fois ça ne tient à pas grand chose... J'utilise ce type de requête pour la première fois et je ne savais pas pour la virgule, le site où j'ai vu l'exemple ne la mentionnait pas...

    je l'ai rajouté et effectivement ma requête me retourne des résultats, que j'aimerais filtrer... et mon where condition ne marche pas en gros voici ma requête complète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT *, DATE_ADD(`date-arrivee` ,INTERVAL `duree` DAY) AS `date_depart` FROM `Devis_Clients` WHERE `date_depart`='".date("Y-m-d")."' AND`devis_valide`= CONVERT( _utf8 '1' USING latin1 ) COLLATE latin1_german2_ci"
    j'imaginais que la requête créait un champs temporaire nommé date-depart mais j'obtiens un Unknown column 'date_depart' in 'where clause'
    Encore une fois peut-on encore m'aiguiller ? j'ai une idée comme étant de ne pas mettre de clause where concernant date_depart et de rajouter en php un if ($tableau['date_depart']==date("Y-m-d") {blabla}
    est ce la meilleure solution d'un point de vu fonctionnel ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Il faut répéter dans la clause WHERE l'expression utilisée dans la clause SELECT.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  *
        ,   DATE_ADD(`date-arrivee` ,INTERVAL `duree` DAY) AS `date_depart` 
    FROM    `Devis_Clients` 
    WHERE   DATE_ADD(`date-arrivee` ,INTERVAL `duree` DAY) AS `date_depart`  = '".date("Y-m-d")."' 
        AND `devis_valide` = CONVERT( _utf8 '1' USING latin1 ) COLLATE latin1_german2_ci
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En utilisant la condition if évoquée plus haut, ça fonctionne... Par contre, en utilisant la requete complete...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur SQL !SELECT * , DATE_ADD(`date-arrivee` ,INTERVAL `duree` DAY) AS `date_depart` FROM `Devis_Clients` WHERE DATE_ADD(`date-arrivee` ,INTERVAL `duree` DAY) AS `date_depart` = '2011-10-28' AND `devis_valide` = CONVERT( _utf8 '1' USING latin1 ) COLLATE latin1_german2_ci
    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 'AS `date_depart` = '2011-10-28' AND `devis_valide` = CONVERT( _utf8 '1' USING l' at line 1

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    En effet, j'ai fait un copier-coller un peu trop rapide.
    Bien évidemment, seule l'expression était à recopier dans la clause GROUP BY, sans la déclaration d'alias.
    Mais je pense que tu as compris d'où provenait l'erreur...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. [AC-2010] Requête sur le même champ plusieurs fois.
    Par Mickey7312 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 19/07/2014, 16h33
  2. [Requête][97] Regroupment du champs Date
    Par majnoune dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 17/04/2007, 15h32
  3. Somme sur des dates (champs dejà dédié)
    Par laurent.w dans le forum Access
    Réponses: 2
    Dernier message: 03/01/2007, 10h25
  4. requête sur noms de champs
    Par irie dans le forum Access
    Réponses: 4
    Dernier message: 30/04/2006, 13h07
  5. [MySQL] Problème de requête sur des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2006, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo