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

DB2 Discussion :

même problème de left mais dans la clause where


Sujet :

DB2

  1. #1
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut même problème de left mais dans la clause where
    re bonjour

    maintenant j'aimerai faire une recherche sur les 3 premiers caractères du champ. je n'ai pas de message d'erreur mais il me retourne une liste vide voisi mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND LEFT(d.X0PHYOFF, 3) LIKE '" & Request.QueryString ("Lieu") & "%'"
    j'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND LEFT(d.X0PHYOFF, 3) = '" & Request.QueryString ("Lieu") & "'"
    pourtant la table comporte bien la donnée cherchée car je rempli ma combo avec le post précédent qui tri cette table

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    J'essaierais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND LEFT(d.X0PHYOFF, 3) LIKE TRIM('" & Request.QueryString ("Lieu") & ")%'"

  3. #3
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    j'ai essayé mais là aussi pas d'amélioration

    au passage il y a une correction à faire sur le placement de la parenthèse du trim comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND LEFT(d.X0PHYOFF, 3) LIKE TRIM('" & Request.QueryString ("Lieu") & "%')

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Quelle est la longueur du QueryString ("Lieu") ?

    En fait, avant de soumettre la recherche au gestionnaire DB2, il faudrait pouvoir se trouver dans la situation suivante.

    Si je veux rechercher tout ce qui commence par disons "AA" dans la combo "Lieu", je dois préparer ma requête SELECT de façon que dans le prédicat WHERE je trouve strictement la valeur AA% et rien d'autre :

    WHERE ... AND LEFT(d.X0PHYOFF, 3) LIKE 'AA%'

    et non pas 'AA___%' où ___ représente des espaces, comme je le crains.

    Peut-on préparer cela dans le script ASP client avant soumission de la requête ?

  5. #5
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    1 - la combo est déjà alimentée avec la supression des espaces par un trim() en ASP

    2 - je vais difficilement pouvoir me passer d'autres prédicats car j'ai besoin d'exclure les collaborateurs dont la date de début est supérieure à la date du jour et dont ceux dont la date de fin est inférieure à la date du jour et j'ai hélas encore d'autres conditions.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Peut-on voir la requête juste avant de la soumettre au gestionnaire DB2, mais avec les variables résolues ?

  7. #7
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    bonjour,

    voici le script complet en ASP je peux imaginer que tu n'est pas forcément familier avec ce code alors je t'expliquerai les points clefs si besoin
    cette typographie est basique et se lit assez bien


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    if Request.QueryString ("Nom") <> "" then
    	sqlNom = "AND UCASE(a.X5NOMPRF) LIKE '" & ucase(Request.QueryString ("Nom")) & "%'"
    else
    	sqlNom = ""
    end if
    if Request.QueryString ("Tel") <> "" then
    	sqlTel = "AND a.X5NUMTL1 LIKE '" & ucase(Request.QueryString ("Tel")) & "%'"
    else
    	sqlTel = ""
    end if
    if Request.QueryString ("Iso") <> "" then
    	sqlIso = "AND a.X5USRPRF LIKE '" & ucase(Request.QueryString ("Iso")) & "%'"
    else
    	sqlIso = ""
    end if
    if Request.QueryString ("Reso") <> "" then
    	sqlReso = "AND a.X5PRFRES LIKE '" & ucase(Request.QueryString ("Reso")) & "%'"
    else
    	sqlReso = ""
    end if
    if Request.QueryString ("Entite") <> "" then
    	sqlAG = " AND a.X5CODAGC = '" & Request.QueryString ("Entite") &"'"
    else
    	sqlAG = ""
    end if
    if Request.QueryString ("Lieu") <> "" then
    	'sqlAGABV = " AND LEFT(d.X0PHYOFF, 3) LIKE '" & Request.QueryString ("Lieu") & "%'"
    	sqlAGABV = " AND LEFT(d.X0PHYOFF, 3) = '" & Request.QueryString ("Lieu") & "' "
    	else
    	sqlAGABV = ""
    end if
    objCmd.CommandText = "SELECT a.X5USRPRF, a.X5NOMPRF, a.X5PNMPRF, a.X5NUMTL1, a.X5NUMTL2, a.X5EMAI, a.X5NOMAGC, a.X5NAGABV, a.X5PRFRES, a.X5TYPAGC, a.X5CODAGC, b.XTCODAGC, d.X0FAX FROM " & application("sBiblio") & ".XX0110F a, " & application("sBiblio") & ".XX0170F b, " & application("sBiblio") & ".XX0171F c, " & application("sBiblio") & ".XX0111F d WHERE LENGTH(TRIM(a.X5USRPRF))=3 "& sqlNom & sqlAg & sqlTel & sqlIso & sqlReso & sqlAGABV & " AND a.X5BOL002='0' AND b.XTNUMENT=a.X5CODAGC AND c.XACLE2=a.X5CODAGC AND b.XTDTDVAL<=" & session("nDateJour") & " AND b.XTDTFVAL>=" & session("nDateJour") & " AND c.XADTDVAL<=" & session("nDateJour") & " AND c.XADTFVAL>=" & session("nDateJour") & " AND d.X0NAME=a.X5USRPRF ORDER BY a.X5NOMPRF ASC"
    set objRs = objCmd.Execute

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Ok, je connais un peu ASP de Croc$oft.

    Juste avant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set objRs = objCmd.Execute
    Peux-tu faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.write(CommandText)
    ou un truc dans ce goût-là, de façon à voir la requête avec les variables résolues

    et coller ici le résultat ?

  9. #9
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    voilà le résultat de la requête résolue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT a.X5USRPRF, a.X5NOMPRF, a.X5PNMPRF, a.X5NUMTL1, a.X5NUMTL2, a.X5EMAI, a.X5NOMAGC, a.X5NAGABV, a.X5PRFRES, a.X5TYPAGC, a.X5CODAGC, b.XTCODAGC, d.X0FAX FROM INTF1_COR.XX0110F a, INTF1_COR.XX0170F b, INTF1_COR.XX0171F c, INTF1_COR.XX0111F d WHERE LENGTH(TRIM(a.X5USRPRF))=3 AND LEFT(d.X0PHYOFF, 3) = 'DIG' AND a.X5BOL002='0' AND b.XTNUMENT=a.X5CODAGC AND c.XACLE2=a.X5CODAGC AND b.XTDTDVAL<=20090205 AND b.XTDTFVAL>=20090205 AND c.XADTDVAL<=20090205 AND c.XADTFVAL>=20090205 AND d.X0NAME=a.X5USRPRF ORDER BY a.X5NOMPRF ASC
    rien ne me semble louche pourtant

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Fais un essai en retirant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LENGTH(TRIM(a.X5USRPRF))=3
    du prédicat WHERE de la requête.

    Dans ta requête, je ne vois pas sur quelle(s) zone(s) tu rapproches la table d (INTF1_COR.XX0111F) des autres tables ?

    Quelle est la version de l'OS/400 ?

    Ne peux-tu pas tester ta requête dans iSeries Navigator, ça simplifierait les choses ?

    Tu verrais ainsi de suite si
    - tu as des erreurs sur cette requête
    - si cette requête te renvoie des résultats

  11. #11
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    Citation Envoyé par Mercure Voir le message
    Fais un essai en retirant le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LENGTH(TRIM(a.X5USRPRF))=3
    du prédicat WHERE de la requête.

    -> pas d'amélioration

    Dans ta requête, je ne vois pas sur quelle(s) zone(s) tu rapproches la table d (INTF1_COR.XX0111F) des autres tables ?

    -> d.X0NAME=a.X5USRPRF j'avais mis ceci à la fin de la requête

    Quelle est la version de l'OS/400 ?

    Ne peux-tu pas tester ta requête dans iSeries Navigator, ça simplifierait les choses ?

    -> oui je vais essayer

    Tu verrais ainsi de suite si
    - tu as des erreurs sur cette requête
    - si cette requête te renvoie des résultats
    Une précision, est ce que l'ordre des critères dasn le where influe la recherche ?

  12. #12
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    bonjour,

    laisse tombé et milles fois désolé, je viens de me rendre compte que le jeu de bases de données fourni comporte des erreurs de saisie au niveau des affectations des personnes d'où le retour vide

    merci quand même

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/03/2010, 20h49
  2. Un problème dans une clause WHERE
    Par manu_71 dans le forum Requêtes
    Réponses: 8
    Dernier message: 23/09/2009, 17h08
  3. [DAO]Recordset et Problème de cotes dans la clause where
    Par fabiolous dans le forum VBA Access
    Réponses: 31
    Dernier message: 20/04/2007, 16h46
  4. Réponses: 8
    Dernier message: 16/08/2006, 14h39
  5. problème ave LEFT JOIN dans MySql
    Par lm0210 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/05/2006, 19h46

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