Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 26/10/2011, 21h39   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 3
Points : 0
Points : 0
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 :
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 ?
GodHunter74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 23h51   #2
Membre expérimenté
 
Avatar de papyphp
 
Inscription : avril 2005
Messages : 425
Détails du profil
Informations personnelles :
Âge : 62
Localisation : Belgique

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : avril 2005
Messages : 425
Points : 545
Points : 545
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. Et ce coup ci, elle ne nous a pas ratés
papyphp est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/10/2011, 19h11   #3
Invité de passage
 
Inscription : octobre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 3
Points : 0
Points : 0
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 :
"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 ?
GodHunter74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 11h24   #4
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 545
Points : 7 545
Il faut répéter dans la clause WHERE l'expression utilisée dans la clause SELECT.
Code :
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
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 18h18   #5
Invité de passage
 
Inscription : octobre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 3
Points : 0
Points : 0
En utilisant la condition if évoquée plus haut, ça fonctionne... Par contre, en utilisant la requete complete...
Code :
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
GodHunter74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/10/2011, 20h40   #6
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 545
Points : 7 545
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
al1_24 est dé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 05h32.


 
 
 
 
Partenaires

Hébergement Web