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 :

Problème de syntaxe


Sujet :

Langage SQL

  1. #1
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut Problème de syntaxe
    Voici ma requète. il me bloque avec les dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RecupNumCommande="Select Distinct Commande.NumCommande,Commande.diametre,Commande.epaisseur,Commande.TypeDeFiletage,Commande.grade,Commande.NomClient,Poste,DateSaisie,TempsPresence,BoutsBons From OperationCasing,Commande Where Commande.NumCommande=OperationCasing.NumCommande AND (OperationCasing.NomPoste='"&NomFil1&"' OR OperationCasing.NomPoste='"&NomFil2&"'OR OperationCasing.NomPoste='"&NomFil3&"'OR OperationCasing.NomPoste='"&NomFil4&"') AND (OperationCasing.DateSaisie Between ('"&debut&"' and '"&fin&"'))"
    Je bosse en asp.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut

    peux tu être un peu plus précis sur l'erreur?

    de plus je ne pense pas qu'il faut mettre des parentheses sur le beetween

    a plus

  3. #3
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    Il me mets type incompatible sur mon BETWEEN. Sans les parenthèses c'est pareil.

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par pmboutteau
    Il me mets type incompatible sur mon BETWEEN.
    C'est peut être parce que les types de &debut& et &fin& sont incompatibles, non ?

  5. #5
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    Autre probléme que je rencontre sur cette requète là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RecupNumCommande="Select Distinct Commande.NumCommande,Commande.diametre,Commande.TypeDeFiletage,Commande.grade,Poste,DateSaisie,TempsPresence,SUM(OperationCasing.BoutsBons) AS Bons From OperationCasing,Commande Where Commande.NumCommande=OperationCasing.NumCommande AND (OperationCasing.NomPoste='"&NomFil1&"' OR OperationCasing.NomPoste='"&NomFil2&"' OR OperationCasing.NomPoste='"&NomFil3&"'OR OperationCasing.NomPoste='"&NomFil4&"') GROUP BY Commande.NumCommande"
    Il me mets
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Pilote ODBC Microsoft Access] Vous avez essayé d'exécuter une requête ne comprenant pas l'expression spécifiée 'diametre' comme une partie de la fonction d'agrégat.
    comme erreur.

    Je sais pas si ma requète est très bien écrite!

    En fait je veux récupérer la somme des bouts bons pour une commande sachant que des bouts bons j'en ai sur 4 NomPoste différents.

  6. #6
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    Re,Mediat

    en fait je récupère ma date de début et de fin dans un formulaire ASP. De là je les retransforme en Date avec la fonction CDate de VBScript. Donc ils sont de même type.

  7. #7
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    La première chose à faire pour tester une requête est de l'extraire du programme et de l'exécuter dans un outil front-end (phpmyadmin par exemple), avec des constantes à la places des variables. Si ta requête fonctionne alors tu sauras que le problème vient du programme et non du SQL.
    Dans le cas contraire, ce forum est fait pour t'aider...

  8. #8
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    voici ma requète qui marche écrite sous access

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT Commande.NumCommande, Commande.diametre, Commande.epaisseur, Commande.TypeDeFiletage, Commande.grade, Commande.NomClient, OperationCasing.Poste, OperationCasing.DateSaisie, OperationCasing.TempsPresence, OperationCasing.BoutsBons
    FROM OperationCasing, Commande
    WHERE (((Commande.NumCommande)=[OperationCasing].[NumCommande]) AND ((OperationCasing.DateSaisie) Between #10/21/2005# And #10/26/2005#) AND ((OperationCasing.NomPoste)='HT4822' Or (OperationCasing.NomPoste)='HT4821' Or (OperationCasing.NomPoste)='ST4420' Or (OperationCasing.NomPoste)='ST4421'));
    L'erreur vient du fait que ma date dans la clause WHERE se met à l'anglaise et non à la française comme en asp.

    PAr contre pour l'autre requète je n'ai pas encore fait de test.

  9. #9
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    voici l'autre requète qui fonctionne aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT Commande.NumCommande, Commande.diametre, Commande.TypeDeFiletage, Commande.grade, OperationCasing.Poste, OperationCasing.DateSaisie, Sum(OperationCasing.TempsPresence) AS temps, Sum(OperationCasing.BoutsBons) AS Bons
    FROM OperationCasing, Commande
    WHERE (((Commande.NumCommande)=[OperationCasing].[NumCommande]) AND ((OperationCasing.NomPoste)='HT4822' Or (OperationCasing.NomPoste)='HT4821' Or (OperationCasing.NomPoste)='ST4421' Or (OperationCasing.NomPoste)='ST4420') AND ((OperationCasing.DateSaisie)=#10/24/2005#))
    GROUP BY Commande.NumCommande, Commande.diametre, Commande.TypeDeFiletage, Commande.grade, OperationCasing.Poste, OperationCasing.DateSaisie;
    Faut que je regarde du côté de l'ASP pour la gestion de ma date pour inverser le mois et le jour.

    C'est tjrs comme çà en SQL, dans le WHERE la date se met au format anglophone?

    Merci pour votre aide sinon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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