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

WinDev Discussion :

Requete sur base oracle en SQL direct


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Points : 26
    Points
    26
    Par défaut Requete sur base oracle en SQL direct
    Bonjour,

    Je crée une requête en SQL direct sur base oracle. Cette requête en mode test me retourne le résultat et fonctionne.
    Si je crée un champ table dans une fenêtre pour cette requête, le tableau reste vide…

    Pourquoi alors qu'en mode test ça fonctionne? J'ai déjà fait d'autre requêtes et ça marche très bien. La différence est que dans cette requête figure une sous requête. Dans la rétro analyse WinDev, il me dit que ce n'est pas géré? Est ce pour cela? (mais alors le mode test e devrait pas fonctionner???)

    Voici le code de ma requête
    Code SQL : 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
    DESIGNATION, CODECIP, QUANTITE, AVG(NVL(QTEVENDUE,0)) AS MOYENNE
    FROM
    (
    SELECT aa.DESIGNATION,aa.CODECIP, bb.QUANTITE, cc.QTEVENDUE, cc.MOISANNEE
    FROM T_PRODUIT aa
    INNER JOIN T_PRODUITGEOGRAPHIQUE bb
    ON aa.T_PRODUIT_ID = bb.T_PRODUIT_ID
    INNER JOIN T_HISTORIQUEVENTE cc
    ON bb.T_PRODUIT_ID = cc.T_PRODUIT_ID
    WHERE MOISANNEE BETWEEN TO_DATE ('01/01/2017', 'DD/MM/YYYY') AND TO_DATE ('01/09/2018', 'DD/MM/YYYY') AND T_PRESTATION_ID=7
    )
    GROUP BY DESIGNATION, CODECIP, QUANTITE
    HAVING QUANTITE > 2 * (AVG(NVL(QTEVENDUE,0)))

    A terme, je voudrais pouvoir passer en paramètre les 2 dates de la requête ainsi que le "2*" de having…. Mais faudrait déjà que la requête fonctionne dans un champ table…

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Quand tu exécute ta requête, par quoi passes-tu. Si tu as quelque part une commande hExecuteRequete ou hExecuteRequeteSQL, il faut que tu utilises le paramètre hRequeteSansCorrection().
    Ce paramètre sert à dire au moteur Windev : T'inquiète mon bonhomme, la requête va être exécutée par ORACLE ou SQLServer .. , je gère, et ne modifie surtout pas ma requête avant de l'envoyer à Oracle.
    Si on ne met pas ce paramètre, Windev analyse la requête , et se plante dès qu'on utilise des syntaxes spécifiques à ORACLE, ou plus généralement, des syntaxes que HFSQL ne sait pas gérer.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Points : 26
    Points
    26
    Par défaut
    Oui ca je sais…. Le souci vient surtout que quand on crée une requete en SQL directement, WinDev décide ou non dans l'analyse de répertorier ou non la requetes (je ne sais pas si j'utilise le bon terme). En sortant de l'écran du code SQL, on peut voir que WinDev rajoute automatiquement un petit lien (comme un tuyau avec quelquechose qui coule) indiquant qu'il a référencé la requête en y mettant les différentes rubriques de la requête.
    Parfois, une requete fonctionnant parfaitement sous oracle et créée à l'identique sous WinDev fait que WinDev ne reconnait pas qqch et ne référence pas la requete. Il n'y a pas le "petit tuyau", il ne détecte pas les rubriques et on ne peut donc pas affecter la requete à une table par exemple.

    EN fait il fait un peut ce qu'il veut..

Discussions similaires

  1. Requêtes SQL Directe sur base oracle
    Par pharminticien dans le forum WinDev
    Réponses: 6
    Dernier message: 20/10/2018, 10h02
  2. Requete sql sur base oracle
    Par kiro4 dans le forum SQL
    Réponses: 4
    Dernier message: 18/03/2009, 09h59
  3. déployer sur des bases oracles et sql server
    Par oupepasa dans le forum Administration et Installation
    Réponses: 5
    Dernier message: 16/04/2008, 12h57
  4. Réponses: 2
    Dernier message: 20/02/2007, 20h39
  5. Réponses: 3
    Dernier message: 17/05/2004, 18h28

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