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 :

Requête croisée dynamique


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Par défaut Requête croisée dynamique
    Bonjour à tous
    Je développe une application amateur en Windev 17. Comme je suis débutant et amateur, j’ai des difficultés dont je vous présente une.
    Je voudrais faire une requête dynamique qui va me permettre d’avoir la somme des totalligne par TYPEPREST(ce qui ne pose pas problème pour moi, et par mois(ce qui me pose un problème)
    La requête sera la source de donnée pour un état

    L’essentiel des info sont dans la table DETAIL_DEMANDE(CODEDEMANDE ,CODEPREST, PRIXUNITPREST, DREPREST,TOTALLIGNE)
    DEMANDE(CODEDEMANDE,DATEDEMANDE,………..)
    TYPEPREST(CODETYPEPREST,NOMTYPEPREST)

    Merci d’avance aux experts Windev
    Jean
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Bonjour,

    Votre problème n'est pas vraiment un problème Windev mais plutôt un problème SQL... je vous invite à chercher des infos au sujet de la clause GROUP BY...

    La référence SQL sur dvp.com : http://sqlpro.developpez.com/cours/sqlaz/ensembles/

  3. #3
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Par défaut
    Bonjour
    Merci pour ta réponse Michel.souris. Ce n'est pas totalement un problème Sql car la requête qui peut extraire les données voulues ne pose pas problème mais à l'exécution de la requête, windev envoie un message d'erreur.
    Pour exemple la requête suivante doit régler le problème mais windev affiche un message d'erreur à l'exécution de la 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
    16
    17
    SELECT 
    TYPEPREST.NOMTYPEPREST AS NOMTYPEPREST,  
    SUM(DETAIL_DEMANDE.PRIXUNITPREST *DETAIL_DEMANDE.QTEPREST) AS Montant,  
    FROM 
    TYPEPREST,  
    CATEGORIEPREST,  
    PRESTATION,  
    DETAIL_DEMANDE,  
    DEMANDE
    WHERE 
    CATEGORIEPREST.CODETYPEPREST  =  TYPEPREST.CODETYPEPREST
    AND  PRESTATION.CODECATPREST  =  CATEGORIEPREST.CODECATPREST
    AND  DETAIL_DEMANDE.CODEPREST  =  PRESTATION.CODEPREST
    AND  DETAIL_DEMANDE.CODEDEMANDE  =  DEMANDE.CODEDEMANDE
    GROUP BY 
    TYPEPREST.NOMTYPEPREST,  
    MONTH(DEMANDE.DATEDEMANDE)
    Même l'utilisation de la fonction MOIS à la place de MONTH n'a pas réglé le problème.

    Merci de continuer les réflexions avec moi
    jean

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 223
    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 223
    Par défaut
    Il y a une première chose surprenante dans cette requête :
    Il y a un group by TYPEPREST.NOMTYPEPREST, MONTH(DEMANDE.DATEDEMANDE)
    La logique voudrait que dans les colonnes affichées, on ait aussi ce MONTH(DEMANDE.DATEDEMANDE)

    Sinon, à propos de cette fonction MONTH()
    Personnellement, je ne connais pas cette fonction.

    Pour extraire le mois à partir d'un date, la Doc Windev dit d'utiliser la fonction TRUNC()
    http://doc.pcsoft.fr/fr-FR/?2034005&...iteur#NOTE2_41

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    MONTHS est (à ma connaissance) une fonction Oracle non supportée par HFSQL...

    La fonction MOIS n'existe pas non plus...

  6. #6
    Membre actif
    Inscrit en
    Décembre 2006
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 74
    Par défaut
    Bonjour
    Merci à tbc92 pour la remarque pertinente. Mais avec la correction de cet erreur, la requête ne fonctionne toujours pas. J'ai pu créer une requête avec l'éditeur de windev et la fonction mois qui renvoie le mois et l'année(102014). Même avec cela j'arrive pas à créer mon état coisé dynamique.
    Mon problème reste entier et je lance un appel aux experts windev.
    Nicolas

Discussions similaires

  1. [AC-2003] Requête croisée dynamique et valeur nulle
    Par domcoool dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/06/2009, 23h00
  2. Requête croisée dynamique dans un état
    Par skeut dans le forum IHM
    Réponses: 2
    Dernier message: 03/12/2008, 09h03
  3. Requête croisée dynamique
    Par totocasagrandi dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 09/01/2007, 17h56
  4. [ODBC] Afficher une requête croisée dynamique dans une page PHP
    Par resterzen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/08/2006, 16h24
  5. requête croisée dynamique
    Par gregius dans le forum Access
    Réponses: 8
    Dernier message: 17/03/2006, 11h24

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