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

HyperFileSQL Discussion :

[WD11] LEFT JOIN multiples


Sujet :

HyperFileSQL

  1. #1
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut [WD11] LEFT JOIN multiples
    Salut à tous,

    J'ai l'impression que c'est une situation récurrente que je rencontre avec les jointures sous HyperFile et j'aimerai bien pouvoir comprendre le comment du pourquoi... Mais je n'y arrive pas.

    Voici une requête toute simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
     UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
     UTILISATEUR.NOM AS NOM,
     TCL__2.VALEUR AS CL__2, 
     TCL__3.VALEUR AS CL__3
    FROM UTILISATEUR 
     
    LEFT JOIN INFOSSUP TCL__2 ON UTILISATEUR.IDUTILISATEUR=TCL__2.IDUTILISATEUR AND TCL__2.IDINFOSLIBRES=2
    LEFT JOIN INFOSSUP TCL__3 ON UTILISATEUR.IDUTILISATEUR=TCL__3.IDUTILISATEUR AND TCL__3.IDINFOSLIBRES=3
    Je vous explique le principe. J'ai une table utilisateur où je stocke les informations sur les utilisateurs.

    Lors de besoins très ponctuels, l'administrateur va avoir besoin d'avoir des informations supplémentaires sur ces utilisateurs (ex : qui peut faire du co-voiturage, qui a des enfants, qui boit du café, etc.). Il va donc créer une "information libre" qu'il pourra supprimer par la suite lorsqu'il aura fini son enquête.
    A cette fin, 2 tables supplémentaires ont été créées :

    • InfosLibres : où l'administrateur va créer ses champs d'informations libres
    • InfosSup : où on va stocker la valeur des champs libres pour chaque utilisateur.


    Ma requête ci dessus va donc devoir aller chercher, pour chaque champ libre, et pour chaque utilisateur, la valeur correspondante de la table "InfosSup".

    Seul hic : tout fonctionne bien lorsqu'il n'y a qu'une info libre à rechercher, mais quand il y a en a plusieurs la requête ne me renvoi aucun résultat !

    J'en appel donc à vos connaissances car là je ne m'en sors vraiment pas...

    Merci...

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Attention, Windev ne connait pas la syntaxe des conditions directement dans la jointure, il les traite comme une condition WHERE.
    Donc la condition sera appliquée après la jointure, et élimine par conséquent les valeurs Null dans la table externe.

    Tu peux passer par des sous requetes.

    Cdlt, Arnaud.

  3. #3
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Merci Arnaud pour ta réponse.

    J'avais malheureusement essayé par des sous requêtes mais, dans ce cas, il me dit "L'alias TCL__2 est déjà utilisé" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
     UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
     UTILISATEUR.NOM AS NOM,
     TCL__2.VALEUR AS CL__2, 
     TCL__3.VALEUR AS CL__3
    FROM UTILISATEUR 
     
    LEFT JOIN (SELECT * FROM INFOSSUP WHERE INFOSSUP.IDINFOSLIBRES=2) TCL__2 ON UTILISATEUR.IDUTILISATEUR=TCL__2.IDUTILISATEUR
    LEFT JOIN (SELECT * FROM INFOSSUP WHERE INFOSSUP.IDINFOSLIBRES=3) TCL__3 ON UTILISATEUR.IDUTILISATEUR=TCL__3.IDUTILISATEUR

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Ah... oui il me semble effectivement avoir rencontré ce pb. Si l'on fait plus d'une jointure externe sur une sous-requête, Windev ne comprend plus.
    Je n'ai pas poussé plus loin par manque de temps, peut être y -a-t-il une syntaxe qui fonctionne.

    Pour ma part, pour contourner le pb, j'ai créé les requetes correspondant aux conditions sur la table externe.

    Dans ton cas, cela reviendrait à enregistrer les requetes TCL__2 et TCL__3 et à faire les jointures externes dessus.

    Cdlt, Arnaud.

    Citation Envoyé par windmastr26 Voir le message
    Merci Arnaud pour ta réponse.

    J'avais malheureusement essayé par des sous requêtes mais, dans ce cas, il me dit "L'alias TCL__2 est déjà utilisé" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
     UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
     UTILISATEUR.NOM AS NOM,
     TCL__2.VALEUR AS CL__2, 
     TCL__3.VALEUR AS CL__3
    FROM UTILISATEUR 
     
    LEFT JOIN (SELECT * FROM INFOSSUP WHERE INFOSSUP.IDINFOSLIBRES=2) TCL__2 ON UTILISATEUR.IDUTILISATEUR=TCL__2.IDUTILISATEUR
    LEFT JOIN (SELECT * FROM INFOSSUP WHERE INFOSSUP.IDINFOSLIBRES=3) TCL__3 ON UTILISATEUR.IDUTILISATEUR=TCL__3.IDUTILISATEUR

  5. #5
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Aie... Je me doutais d'un truc pareil...

    Le problème c'est que le principe des informations libres est que l'utilisateur puisse en créer/supprimer lorsqu'il le veut. Ça me paraît donc pas très "propre" de créer, en même temps que l'utilisateur créé une information libre, la requête correspondante et à chaque fois de réadapter mon code dessus.

    En plus il ne me semble pas qu'on puisse utiliser une jointure avec une requête dans une autre requête (à la même manière qu'une vue) ? Peux-tu me le confirmer car je ne m'y connais pas assez... J'ai essayé et il ne reconnait pas mes requêtes :

    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
    SELECT 
    	UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
    	UTILISATEUR.NOM AS NOM,
    	TYPE_UTILISATEUR.NOM AS TYPE,
    	UTILISATEUR.EMAIL AS EMAIL,
    	UTILISATEUR.IMPAYE AS IMPAYE,
    	PERIODE.DESIGNATION AS NOMPERIODE, 
    	REQ_IL2.Valeur AS cl__2, 
    	REQ_IL3.Valeur AS cl__3
     
    FROM UTILISATEUR 
    LEFT OUTER JOIN TYPE_UTILISATEUR ON UTILISATEUR.IDTYPE_UTILISATEUR=TYPE_UTILISATEUR.IDTYPE_UTILISATEUR 
    LEFT JOIN PERIODE ON PERIODE.IDPERIODE=UTILISATEUR.IDPERIODE
    LEFT JOIN REQ_IL2 ON UTILISATEUR.IDUTILISATEUR=REQ_IL2.IDUTILISATEUR
    LEFT JOIN REQ_IL3 ON UTILISATEUR.IDUTILISATEUR=REQ_IL3.IDUTILISATEUR
    Mais ça me donne une idée : peut être qu'en créant dynamiquement une vue que j'utilise ensuite dans ma requête ?

    Je vais essayer de creuser cette piste on verra bien.

    Merci en tout cas

  6. #6
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Bon... La solution des vues en solution de secours marche bien.

    Je ne sais pas si ça sera bien utile à quelqu'un mais voilà au cas où :

    Création de la requête de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    rSQL est une chaîne=[
     SELECT 
      UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
      UTILISATEUR.NOMCOMPLET AS NOMCOMPLET,%1
     FROM UTILISATEUR 
    %2
    ]
    Avant l'exécution de la requête, on créé les vues de chaque info libre ainsi que le texte complémentaire de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    POUR CHAQUE InfosLibres 
    	curID=InfosLibres.IDInfosLibres
    	HCréeVue("tcl__"+curID,InfosSup,"IDUtilisateur,Valeur","Valeur","IDInfosLibres="+curID)
    	sChampSup+=ChaîneConstruit(", " + RC + "  tcl__%1.Valeur AS cl__%1",curID)
    	sJointSup+=ChaîneConstruit(" LEFT JOIN  tcl__%1 ON UTILISATEUR.IDUTILISATEUR=tcl__%1.IDUTILISATEUR" + RC,curID)
    FIN
    Il ne reste alors plus qu'à construire la chaîne en renseignant les paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rSQL=ChaîneConstruit(rSQL,sChampSup,sJointSup)
    Et voilà notre requête créée dynamiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     SELECT 
     
      UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
      UTILISATEUR.NOMCOMPLET AS NOMCOMPLET,
      tcl__2.Valeur AS cl__2, 
      tcl__3.Valeur AS cl__3
     FROM UTILISATEUR 
     LEFT JOIN  tcl__2 ON UTILISATEUR.IDUTILISATEUR=tcl__2.IDUTILISATEUR
     LEFT JOIN  tcl__3 ON UTILISATEUR.IDUTILISATEUR=tcl__3.IDUTILISATEUR
    Bon je ne sais pas ce que tu en penses mais ça me parraît être du rafistolage pour palier le fait que WinDev ne gère pas correctement le SQL pour le moment (il faut dire aussi que j'ai une version 11 ce qui ne doit pas aranger les choses).

    Je posterai une autre solution "plus propre" si je trouve d'ici là.

    Merci encore pour ton aide.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Citation Envoyé par Arnaud B. Voir le message
    Attention, Windev ne connait pas la syntaxe des conditions directement dans la jointure, il les traite comme une condition WHERE.
    Donc la condition sera appliquée après la jointure, et élimine par conséquent les valeurs Null dans la table externe.

    Tu peux passer par des sous requetes.

    Cdlt, Arnaud.
    C'est vrai pour HyperFile C/S 11. Par contre, si tu as posté dans la bonne rubrique, donc que tu es bien en client serveur, tu peux tenter de passer sur un serveur version 14 par exemple. Là ça le gère comme il faut.
    Encore mieux en version 16.

  8. #8
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Ah non.

    Nous avons fait des tests, je n'ai plus tous les résultats en tête, mais sur ce point précis (condition dans la jointure), ça ne fonctionnait ni en 15 ni en 16 en HF C/S.

    Nous n'avons pas fait de tests en v14.

    Citation Envoyé par Bowen Voir le message
    C'est vrai pour HyperFile C/S 11. Par contre, si tu as posté dans la bonne rubrique, donc que tu es bien en client serveur, tu peux tenter de passer sur un serveur version 14 par exemple. Là ça le gère comme il faut.
    Encore mieux en version 16.

  9. #9
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par Bowen Voir le message
    C'est vrai pour HyperFile C/S 11. Par contre, si tu as posté dans la bonne rubrique, donc que tu es bien en client serveur, tu peux tenter de passer sur un serveur version 14 par exemple. Là ça le gère comme il faut.
    Encore mieux en version 16.
    Je pense alors m'être trompé

    Il me semblait avoir posté dans la bonne section : Environnements de développement > WinDev > HyperFileSQL ?

    Quoi qu'il en soit la solution de rafistolage marche assez bien au final, et assez vite avec des fichiers de 200 enregistrements (pour le moment).

    Si le client m'avait laissé le choix, je lui aurait installé un véritable serveur SQL

  10. #10
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    C'est moi qui me suis trompé, mon message du dessus n'est pas du tout correct, je viens d'ailleurs d'apporter la remarque sur l'aide de PCSoft (en annotation). Les lignes externes de la jointure ne sont pas visibles dès qu'on met une condition dans la jointure.
    J'étais pourtant persuadé d'avoir fait le test.

  11. #11
    Membre régulier Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Points : 108
    Points
    108
    Par défaut
    Hélas c'est des cas comme celui là qui prouve certaines limites du langages... (Sans vouloir dénigrer WinDev, langage que je trouve intéressant dans sa capacité à développer rapidement des applications).

  12. #12
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Sans rentrer dans une nouvelle polémique de "pour ou contre" windev, un simple constat : la partie la plus sensible de windev, c'est Hyperfile. C'est de là que viennent la majorité des bugs Windev que j'ai rencontré.
    C'est vraiment le parent pauvre de PCSoft, j'en veux pour preuve un Bug signalé en 2008 toujours pas réglé. (trois fois rien, juste un select SUM(Champ), sans GROUP BY, qui me renvoie deux lignes...)

  13. #13
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Citation Envoyé par Bowen Voir le message
    C'est moi qui me suis trompé, mon message du dessus n'est pas du tout correct, je viens d'ailleurs d'apporter la remarque sur l'aide de PCSoft (en annotation). Les lignes externes de la jointure ne sont pas visibles dès qu'on met une condition dans la jointure.
    J'étais pourtant persuadé d'avoir fait le test.
    Ne te flagelle pas, il parait que cette syntaxe fonctionnait en v14, d'après certains sur ce forum.

    Personnellement, ça m'étonne, mais nous n'avons fait des tests que sur les v15 et v16.

    Citation Envoyé par Bowen Voir le message
    Sans rentrer dans une nouvelle polémique de "pour ou contre" windev, un simple constat : la partie la plus sensible de windev, c'est Hyperfile. C'est de là que viennent la majorité des bugs Windev que j'ai rencontré.
    C'est vraiment le parent pauvre de PCSoft, j'en veux pour preuve un Bug signalé en 2008 toujours pas réglé. (trois fois rien, juste un select SUM(Champ), sans GROUP BY, qui me renvoie deux lignes...)
    Tout à fait d'accord !

    Cdlt, Arnaud.

  14. #14
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Une vue c'est l'ancêtre d'une source de données dans Windev.
    C'est pour ça que je te disais d'utiliser une requete.

    Mais tu as raison, c'est pour pallier l'incapacité de Windev à exécuter correctement le SQL qu'on est obligé de passer par des bidouilles pareilles..

    En sachant de plus que d'après nos tests, le comportement sur les jointures externes n'est pas le même entre WD15 et WD16, et entre HF CLassic et HF C/S !

    Donc méfiance à chaque montée de version...

    Autre solution : opter pour un vrai SGBD (PostgreSQL, MS SQL Server ou Oracle).

    Citation Envoyé par windmastr26 Voir le message
    Bon... La solution des vues en solution de secours marche bien.

    Je ne sais pas si ça sera bien utile à quelqu'un mais voilà au cas où :

    Création de la requête de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    rSQL est une chaîne=[
     SELECT 
      UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
      UTILISATEUR.NOMCOMPLET AS NOMCOMPLET,%1
     FROM UTILISATEUR 
    %2
    ]
    Avant l'exécution de la requête, on créé les vues de chaque info libre ainsi que le texte complémentaire de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    POUR CHAQUE InfosLibres 
    	curID=InfosLibres.IDInfosLibres
    	HCréeVue("tcl__"+curID,InfosSup,"IDUtilisateur,Valeur","Valeur","IDInfosLibres="+curID)
    	sChampSup+=ChaîneConstruit(", " + RC + "  tcl__%1.Valeur AS cl__%1",curID)
    	sJointSup+=ChaîneConstruit(" LEFT JOIN  tcl__%1 ON UTILISATEUR.IDUTILISATEUR=tcl__%1.IDUTILISATEUR" + RC,curID)
    FIN
    Il ne reste alors plus qu'à construire la chaîne en renseignant les paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rSQL=ChaîneConstruit(rSQL,sChampSup,sJointSup)
    Et voilà notre requête créée dynamiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     SELECT 
     
      UTILISATEUR.IDUTILISATEUR AS IDUTILISATEUR,
      UTILISATEUR.NOMCOMPLET AS NOMCOMPLET,
      tcl__2.Valeur AS cl__2, 
      tcl__3.Valeur AS cl__3
     FROM UTILISATEUR 
     LEFT JOIN  tcl__2 ON UTILISATEUR.IDUTILISATEUR=tcl__2.IDUTILISATEUR
     LEFT JOIN  tcl__3 ON UTILISATEUR.IDUTILISATEUR=tcl__3.IDUTILISATEUR
    Bon je ne sais pas ce que tu en penses mais ça me parraît être du rafistolage pour palier le fait que WinDev ne gère pas correctement le SQL pour le moment (il faut dire aussi que j'ai une version 11 ce qui ne doit pas aranger les choses).

    Je posterai une autre solution "plus propre" si je trouve d'ici là.

    Merci encore pour ton aide.

  15. #15
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut et en WD17 ?
    Bonjour,

    Je réactive ce vieux post pour savoir si quelqu'un a retesté les jointures externes avec conditions en WD17.

    Dans la doc des nouveautés 17, PC Soft affirme avoir "optimisé" les conditions dans la clause "ON".

    Notamment, est-ce que les lignes externes apparaissent bien ? (et donc la condition n'est plus considérée comme un WHERE)

    Merci de votre retour d'expérience.

    Patrick

  16. #16
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Oui nous avons testé sur la 17 61h et malheureusement rien n'est encore réglé.

    Il n'y a aucun changement dans les résultats de nos tests de conformité SQL.

    La dernière mise à jour 61h a préparé le terrain au niveau de l'éditeur de requêtes et une prochaine mise à jour (quand ? on ne sait pas) est apparemment prévue pour modifier le comportement d'Hyperfile.

    En espérant que ce soit enfin réglé...

    Cdlt, Arnaud.

    Citation Envoyé par SevenSoftware Voir le message
    Bonjour,

    Je réactive ce vieux post pour savoir si quelqu'un a retesté les jointures externes avec conditions en WD17.

    Dans la doc des nouveautés 17, PC Soft affirme avoir "optimisé" les conditions dans la clause "ON".

    Notamment, est-ce que les lignes externes apparaissent bien ? (et donc la condition n'est plus considérée comme un WHERE)

    Merci de votre retour d'expérience.

    Patrick

  17. #17
    Membre averti
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    256
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 256
    Points : 435
    Points
    435
    Par défaut
    Merci Arnaud.

    Patrick

  18. #18
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut Et pourtant...
    Réponse de Jérôme Aerts (celui qui présente les TDF) à la question
    "quand comptez vous régler les bugs
    - requête SUM qui renvoie plusieurs lignes
    - Jointures externes qui ne renvoient pas toutes les lignes (donc ce post)"
    Citation Envoyé par mail de Jérôme Aerts
    Un correctif sur ce point est prévu en version 17. Il sera disponible avec la mise à jour qui arrivera fin janvier, de même que les évolutions sur les jointures.
    J'adore les effets d'annonce moi...
    Ah si, la phrase suivante dans l'e-mail c'était :
    J'ai vu que vous n'avez pas encore commandé les mises à jour de vos licences en version 17.
    A qui dois-je envoyer la proposition de mise à jour ?
    Et pour ceux qui me diraient que je relance une polémique, je tiens à ce que ça ne soit pas le cas. ça évitera tout dérapage et permettra que ce post reste affiché.
    A chacun d'en tirer ses conclusions.

  19. #19
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    Pour information :

    la version 17 - 61h, sortie cette nuit (donc datée du 15 fév.) ne règle aucun des deux problèmes.

  20. #20
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Non, c'est "apparemment" annoncé pour une prochaine mise à jour.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [EJBQL] multiple left join fetch
    Par joploya dans le forum Java EE
    Réponses: 0
    Dernier message: 16/11/2011, 09h41
  2. [WD11] Left Join
    Par windmastr26 dans le forum HyperFileSQL
    Réponses: 11
    Dernier message: 10/06/2011, 17h16
  3. multiple left join
    Par lanve dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/07/2007, 09h51
  4. left join multiple sur grosses tables
    Par hn2k5 dans le forum Requêtes
    Réponses: 6
    Dernier message: 30/11/2005, 16h10
  5. Export d'une vue avec LEFT JOIN
    Par schnourf dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/05/2003, 13h57

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