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 :

Faire une Requête SQL


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut Faire une Requête SQL
    Bonjour tout le monde !!

    Je précise que je travaille dans un ERP qui utilise SQL et je dois pour une utilisation particulière faire une requete SQL mais elle me pose des problemes. Je dois donc compter le nombre d'occurences dans une table qui commence par une chaine. J'ai essayé avec LIKE comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(codearticle) from article where codearticle like @vu$(98)%
    @vu$(98) est en fait la variable qui contient la sous chaine a rechercher. Et je précise qu'en mettant entre guillements ou quote la variable ca produit une erreur

    Je ne vois pas d'autres solutions car il m'est impossible d'utiliser une comparaison avec une variable en dur car je ne peux pas faire de structures répétitives comme FOR.

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Il faut concaténer la chaîne '%' à votre variable.

  3. #3
    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
    Si @vu$(98) est une variable, % dans le modèle du LIKE est une chaîne de caratère. Il faut donc concaténer ces deux chaînes pour construire le modèle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select count(codearticle) 
    from article 
    where codearticle like @vu$(98) || '%'
    [edit] grilled
    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.

  4. #4
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Merci pour vos réponses mais hélas ca ne marche pas plus. Cependant je ne sais pas si ca vient de la syntaxe ou bien de l'ERP en lui meme.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Puisque la requête utilise une variable, il serait bon de vérifier que celle-ci a bien une valeur.
    Quel est le texte exact de la requête envoyée au serveur ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    J'ai deja vérifié que la variable contenait bien une valeur et de plus celle que je testais. Je "débugge" a coup d'affichage de valeur n'ayant aucun autre moyen. J'ai bien l'impression que ca vient plus de la syntaxe utilisé par l'ERP et je leur ai envoyé un mail pour qu'il me donne plus d'infos. Je signale que c'est l'ERP Silog que nous utilisons et qui n'est pas de toute jeunesse (présentation de l'aide avec bureau Windows 98, pas certifié pour Vista et ne fonctionne pas pour les pc en 64 bits )

    Si jamais vous avez une idée tout de meme n'hésitez pas a la soumettre

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Quelle est la requête exacte envoyée au serveur ?
    Quelle erreur est retournée ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Voila la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select max(codearticle) from article where codearticle like @vu$(98) || '%'
    Le message d'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '|' : syntaxe incorrecte

  9. #9
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Et vous avez vérifié que l'opérateur de concaténation pour votre SGBD est bien || ?
    Ça peut être +, la fonction CONCAT ou que sais-je encore.

  10. #10
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Je n'ai aucune info sur le SGBD utilisé car a l'origine je suis arrivé uniquement pour faire de la saisie pour un mois, ca fait desormais 6 mois que j'y suis et je fais du dev. Je n'ai donc pas été formé sur ce logiciel et non présent lors de la mise en place du logiciel et du serveur.
    La doc fourni ne parle pas du tout de la syntaxe SQL.

    J'ai essayé avec + mais ca ne marche pas non plus je vais essayé avec CONCAT mais sans grand espoir.

    je n'ai pas non plus de contact avec un interlocuteur et seul les bugs de l'application sont géré par leur hot line sinon c'est service payant

  11. #11
    Membre régulier
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Points : 71
    Points
    71
    Par défaut
    Finalement j'ai reussi en utilisant le +. J'avais du faire une autre erreur la premiere fois mais ca faisait bien une heure que je cherchais un moyen donc ...

    L'autre probleme que je rencontre est pour une autre requete SQL, d'insertion cette fois. Je dois insérer dans une table un enregistrement construit par l'utilisateur. Donc a nouveau utilisation de variables. J'ai donc fais cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SER("","insert into article(codearticle,designation1,unite,famille,typeproduit) values (@vu$(99),@vu$(2),@vu$(3),@vu$(4),@vu$(6))","")
    J'ai vérifié que chaque variable avait bien une valeur qu'elle était les bonnes et du bon type. L'erreur soulevé est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Message : insert into article(codearticle,designation1,unite,famille,typeproduit) values ('10C0014A040000A','Test creation article','U','AUTRES_MATIERES','2'
    Message : Ligne 1 : syntaxe incorrecte vers '2'
    C'est a nouveau sur l'ERP Silog donc surement spécifique mais si certains voient une solution ou on deja developper pour ce logiciel merci de vos propositions

  12. #12
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    C'est quoi cette instruction SER qui prend 3 paramètres dont la requête SQL ?

    Elle ne fait pas partie du langage SQL à ma connaissance.

    Je ne sais pas si c'est une erreur de copier/coller mais il manque la parenthèse finale de la requête dans le message d'erreur. Et comme c'est près de l'erreur...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [WD16] Faire une requête SQL sur une table ?
    Par EriCstoFF dans le forum WinDev
    Réponses: 9
    Dernier message: 01/09/2011, 10h16
  2. [XL-2007] Faire une requête SQL
    Par Pynouz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/06/2010, 17h15
  3. Comment faire une requête Sql en VB
    Par Menontona dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/03/2009, 11h33
  4. Réponses: 0
    Dernier message: 16/12/2007, 20h02
  5. Comment faire une requête SQL dans un datatable
    Par Passepoil dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/02/2007, 20h24

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