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 :

[AQL] Requête de comparaison de 2 zones de texte


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [AQL] Requête de comparaison de 2 zones de texte
    Bonjour

    J'ai deux questions, la premiére qu'est-ce que le language AQL ( est-ce pareil que le SQL ? ).

    Enfin je desire créer une requete ou je comparerais deux champs de type text (Biens.Localisation et Utilisateur.Localisation), je m'explique:

    Voici la structure de ma table : Une tables Biens et une table utilisateur avec dans chacune des deux tables le champ localisation.

    J'ai deja effectuer la partie SELECT
    Il me manque la synthaxe pour la partie WHERE où je desire voir si les deux champs sont égaux, cependant il y a une particularité en effet, il me faut un filtre pour ne garder que les erreurs.

    Cependant, certaines données peuvent êre exact bien que pas exactement pareil.

    Ex:
    "FRANCE/PARIS/2ARR/RUE_DU_BAC"et "FRANCE/PARIS/2ARR"
    "FRANCE/LYON/1ARR et FRANCE/LYON"
    "FRANCE/LYON/ et FRANCE/LYON/1ARR/RUE_PIA

    Si cela peut vous aider, l'équivalent de ma condition en VBA donne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Cellule Like "*" & Cellule(0, 1) & "*" Then
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut Oublie
    Je travail sous le logiciel de peregrinne, Asset Center comme SGBSR.

  3. #3
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    En gros, la clause de vérification que tu cherches, si j'ai bien compris, serait du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ... WHERE Bien.Localisation LIKE '%' || Utilisateur.Localisation || '%'
    ce qui signifie que Bien.Localisation est égal ou contient Utilisateur.Location (et pas l'inverse).

    || est le caractère de concaténation en SQL,
    % est le joker.

    Merci de nous indiquer ton SGBD et de nous mettre ta requête sur le forum si tu souhaites plus d'aide

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut Help
    Mon SGBD est Asset Center de peregrine, je crois qu'il utilise le language AQL.
    Lorsque je tappe la requete, il y a des erreurs :

    Erreurs lexical : Mot clé invalide ( texte :'|' )
    Erreurs de syntaxe 'Utilisateur' ; 'Utilisateur' devrait être Eof

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Excuse moi pour le SGBD, tu l'avais déjà précisé, c'est l'habitude de demander ...

    Pour ce que j'en comprends, les messages d'erreurs s'interprètent ainsi :
    - Si il ne reconnait pas le double pipe, c'est que ton langage doit avoir un autre symbole de concaténation, mais là, c'est à toi de nous dire lequel ...
    - Utilisateur non reconnu : il te faut effectivement une telle table dans ta requête pour faire appel à un de ses champs.

    Pourrais-tu STP nous poster sur le forum ta requête complète (ou si elle est trop "grosse", au moins la partie significative), que l'on puisse se faire une idée ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Ma requette ressemble à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Bien.Localisation, Utilisateur.localisation, Utilisateur.Nom
    FROM Bien, Utilisateur
    WHERE Bien.Localisation <> Utilisateur.localisation
    .......;
    La selection est faite de façon graphique grâce au logiciel (Asset Center), j'ai juste à rentrer un clause WHERE de plus

    En faite, je veus selectionner tous les utilisateurs dont la localisation de leurs biens est différentes de leur localisation ( afin de trouver les erreurs potentiels ), ensuite comme la base de donnée n'est pas completement à jour, il me sort dans le résultat des lignes que je considére comme juste, tel que:

    Ex:
    Bien.localisation User.Localisation User.Nom
    FRANCE/PARIS/2ARR FRANCE/PARIS ALFRED
    FRANCE/LYON FRANCE/LYON/1ARR/RUE... JEAN
    FRANCE/PARIS/1ARR/RUE... FRANCE/PARIS/1ARR PAUL

    C'est les lignes ne sont pas strictement égal cependant on vois qu'elles sont juste, bien que incompléte.

    Ex erreurs:
    FRANCE/PARIS/1ARR FRANCE/LYON/2ARR SYLVIE
    FRANCE/LYON/2ARR FRANCE/LYON/1ARR MARSHAL

    Il faut trouver le moyen de comparer ces deux zones de textes afin qu'il me ressorte dans la requête que les erreurs.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Je ne trouve pas le moyen d'avoir ma requete autrement que de maniére graphique, dsl . Je vais quand même appronfondir ma recherche.

    Voilà ce que j'ai trouver dans l'aide pour le symbole |

    | La barre verticale signifie que les choix sont exclusifs

    "%" remplace n'importe quelle chaîne de caractères.

    Concaténation

    Ce mode permet de combiner plusieurs champs du fichier source. Sélectionnez ces champs un à un. Vous pouvez séparer les champs par des caractères de votre choix. Il suffit d'encadrer ces caractères par le caractère ".
    Exemple*: Champ1" et "Champ2

    Voilà si cela peut vous aider
    Merci

  8. #8
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Donc tes erreurs sont caractérisés comme suit :
    - Valeurs de localisation différentes,
    - Localisation du Bien non incluse dans celle de l'utilisateur,
    - et vice-versa

    La requête s'écrit donc comme ceci, à la réserve près que j'ai utilisé et comme opérateur de concaténation, et que ça m'étonnerait que ça fonctionne tel quel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Bien.Localisation, Utilisateur.localisation, Utilisateur.Nom
      FROM Bien, Utilisateur
     WHERE Bien.Localisation <> Utilisateur.localisation
       AND Bien.Localisation NOT LIKE '%' et .Localisation et '%'
       AND Utilisateur.Localisation NOT LIKE '%' et Bien.Localisation et '%'
    En fait, la première clause est inutile, du fait des 2 autres, donc on peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Bien.Localisation, Utilisateur.localisation, Utilisateur.Nom
      FROM Bien, Utilisateur
     WHERE Bien.Localisation NOT LIKE '%' et .Localisation et '%'
       AND Utilisateur.Localisation NOT LIKE '%' et Bien.Localisation et '%'
    A toi de l'adapter selon ta syntaxe,

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Merci beaucoup
    Je vais essayer d'adapter la syntaxe en conséquence

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 31
    Points : 18
    Points
    18
    Par défaut
    Voici la requête qui régle tous mes soucis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE (Left(Location.FullName, Length(User.Location.FullName)) <> User.Location.FullName)
    Merci pour votre aide

  11. #11
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Pour être complet, pourquuoi ne pas compléter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WHERE (Left(Location.FullName, Length(User.Location.FullName)) <> User.Location.FullName)
       OR (Left(User.Location.FullName, Length(Location.FullName)) <> Location.FullName)
    Non ?

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

Discussions similaires

  1. [AC-2003] Requête pour mise à jour de zone de texte.
    Par delphine59 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 05/03/2012, 00h41
  2. [AC-2003] renommer une colonne de requête en fonction d'une zone de texte d'un formulaire
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/03/2010, 17h16
  3. Requête recherche à partir d'une zone de texte : lien entre iff et like ?
    Par pierrequimousse dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/01/2010, 14h41
  4. Requête SQL pour remplir une zone de texte déroulante
    Par uranium-design dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 17/10/2007, 13h15
  5. Réponses: 3
    Dernier message: 21/06/2005, 12h37

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