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 :

un processus de comptage et de selection trés compliqué [WD17]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut un processus de comptage et de selection trés compliqué
    bonjour les informagiciens
    un problème que je croyais avoir résolu ,enfin j'ai réussi avec l'aide de wimbish à calculer l'age a partir des dates de naissance et un classement séparer selon le sexe et l'age , mais j'ai constater qu'il faut regrouper tous ça dans un seule table et peut-être dans une seul requête .
    voilà les données :
    ------------------------------------total
    age ]
    -----------------------------------------
    nouveaux --(F) ]
    -----------(G) ]----------------------
    ----------------------------------------
    redoublants(F) ]
    -----------(G) ]----------------------
    ----------------------------------------
    triplant-----(F) ]
    -----------(G) ]----------------------
    ----------------------------------------
    total ]
    ----------------------------------------
    pour faire une lecture de tous ça :
    age: comptage pour avoir les ages identique pour tous
    nouveaux: selon sexe et par age
    redoublants:selon sexe et par age
    triplant:selon sexe et par age
    total: vertical
    totale: horizontal

  2. #2
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    Je ne comprends pas très bien ton problème.

    Mais dans ta requête tu peux regrouper tes données avec l'instruction ORDER BY. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT age, sexe, niveau FROM etudiant ORDER BY age, niveau, sexe
    Donc après dans ton programme tu traites tes données avec des conditions, des compteurs. Apres si j'aurai mieux compris ta demande, peut être que tu aurais pu faire ça dans une seule et même requête.
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    oui j'ai essayé avec une requête en commençant par :
    1-regrouper tous les données
    voici l'image
    [IMG][/IMG]

    pour c1.c1:
    1= nouveaux
    2=redoublants
    3=triplant
    4=expulser

    voilà la résultat que je cherche:
    [IMG][/IMG]

  4. #4
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    as tu essayé ma requête ?
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    oui ça donne l'image en haut

  6. #6
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    D'accord, donc il faut que tu récupères toutes les données ( cf ma requête ) et ensuite que tu les traites, avec des jeux de variables et de condition, pour ensuite les insérer dans ton tableaux.

    Ah moins qu'un autre membre est une autre idée, je te conseillerai de partir sur ca.

    Nhaps
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 207
    Points : 9 208
    Points
    9 208
    Par défaut
    Je plussoie nhaps, tu as toutes les valeurs. C'est à toi de les traiter et de les présenter comme tu le souhaites (recherche age min max, ordonné par type c1)...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    en regardant la 2ème image la table contiens des cellules NULL et pour avoir cette résultat il faut sélectionner sur même rubrique la chose qu'une requête ne le permis pas si non il y a surement une autre piste a suivre

  9. #9
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut



    Je vais essayé de t'expliquer, c'est jeudi et je suis gentil.

    Avec ta requête, tu récupères tout tes étudiants avec:
    Un étudiant possède un age, un sexe, et un niveau(classification)

    Apres c'est la que ca devient compliquer, et oui windev ne fait pas tout. Tu vas devoir créer des procédures, des fonctions, du code tout simplement pour trier tout d'abord tes données par age.

    Pour chaque age, tu vas récupérer le niveau( nouveaux, redoublants, triplant ) et aussi pour chaque niveau le sexe !

    Pour les cases vide, c'est à dire qu'il n'y en a pas et bien tu mets 0. Pour les totaux, tu calcules par ligne ou colonnes.

    Apres il n'y a pas unicité sur la façon de faire, à toi de chercher, c'est de la programmation bas niveau tu peux y arriver.
    En tout cas essaye de faire un début, montre le nous, et on t'aidera en te disant se qui ne vas pas dans ce que tu auras proposer. Mais sache que nous ne sommes pas la pour faire ton travail, mais pour t'aider, te donner des pistes.

    J'attends donc un début de code de ta part pour t'aider à nouveau.

    Bon Dev'

    Nhaps
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    je sais que c'est à moi de traduire tous ça en WLanguage et je sais bien que je suis débutant

    1-classer les nouveaux par sexe et par age------calcul à la fin par sexe
    2-classer les redoublants par sexe et par age----calcul à la fin par sexe
    3-classer les triplant par sexe et par age--------calcul à la fin par sexe
    ---------------------------------------------
    calculer le total par age (calcul horizontal)
    voilà
    avec une requête en code SQL OK je vais essayé
    Dites-moi que je suis sur la bonne voie

  11. #11
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    vu ce que tu veux faire (si tu est en version 18) j'attendrais la mise à jour (qui je l'espère ne devrai plus tardait) qui te permettra d'utiliser le nouveau champ tableau croisé dynamique... Alléluia !
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    SELECT
    MIN(c1.genre) AS genre,
    c1.c1 AS c1,
    TRUNC( ( MONTHS_BETWEEN(SYSDATE ,c1.datnss )/ 12) ) AS age,
    COUNT(*) AS Compt_age
    FROM
    c1
    WHERE
    c1.c1 NOT LIKE '4'
    GROUP BY
    c1.c1,
    TRUNC( ( MONTHS_BETWEEN(SYSDATE ,c1.datnss )/ 12) )
    OK c vraiment du SQL
    ALORS
    comment faire pour isoler les (F) et les (G) pour chaque nivaux (nouveaux-redoublants-triplant) en prenant compte l'age?

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par laurent30s Voir le message
    vu ce que tu veux faire (si tu est en version 18) j'attendrais la mise à jour (qui je l'espère ne devrai plus tardait) qui te permettra d'utiliser le nouveau champ tableau croisé dynamique... Alléluia !
    j'ai la version 17
    si tu a vu ma deuxième image en haut.
    la table est programmer en (vb6)

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    je demande si quelqu’un a déjà travailler sur ce genre de traitement de données peut m'aider par ce que je suis vraiment bloquer .
    merci d’avance

  15. #15
    Membre confirmé Avatar de Nhaps
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 350
    Points : 603
    Points
    603
    Par défaut
    Citation Envoyé par hadaf Voir le message
    je demande si quelqu’un a déjà travailler sur ce genre de traitement de données peut m'aider par ce que je suis vraiment bloquer .
    merci d’avance
    On travaille a peu prêt tous sur ce genre de traitement de données, mais tu te bloques sur le fait de faire une unique requête SQL dans l'espoir qu'elle puisse te faire tout, se qui n'est pas forcement possible, et pas la plus simple des solutions.

    Tu peux faire plusieurs requête si tu veux, j'ai l'impression que tu bloques sur le fait de remplir ton tableau, tu peux le remplir par programmation, et donc pas seulement "remplir le tableau a partir d'une requête existante".
    Windev 23 - SQL SERVER - PHP
    Play : TFT - Jeux indé

  16. #16
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Citation Envoyé par Nhaps Voir le message



    Je vais essayé de t'expliquer, c'est jeudi et je suis gentil.
    Bonjour M Hadaf,
    alors là c'est vendredi et on ne peut pas être gentil tous les jours !!
    Alors ça fait quand même plusieurs post que je lis sur plusieurs de tes soucis
    vraisemblablement sur la même application.
    Au bout d'un moment tu pourrais faire sérieusement le guide d'autoformation
    ou suivre quelques tutos sur le SQL
    et en profiter pour essayer de comprendre quelques notions de modélisation de base de données....


  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    le vendredi pour moi est un jour de prière ,et si certaines personnes ne veulent pas fournir de l'aide, il est préférable de ne pas répondre SVP

  18. #18
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Bonjour

    C'est compliqué de t'aider...
    Tu nous montres le résultat d'une requête et ce que tu veux obtenir.
    Mais on ne sait rien de ton analyse...

    Fait les choses dans l'ordre
    Dit nous quels sont tes fichiers, les rubriques et le relations

    A partir de là on verra ce qu'on peut faire...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    merci laurent30s

    je travail sur un seul fichier qui contiens les données des élèves dont les rubriques (date naissance +sexe(F,G)+catégorie (1=nouveau,2=redoublants,3=triplant) ).
    Ce sont les données que je veux traité par classement, tri et comptage.
    -penser que vous avez une classe et que vous voulez donner des statistiques
    comme le montre l'image en haut sur un seul tableau .

    j'essaye maintenant avec un table mémoire alimenter par une requête qui calcul l'age et donne le nombre de chaque age (je dis le nombre total qui contiens tous les élèves mais par age ) il reste le sexe (F,G) et la catégorie qui contiens elle aussi trois données sur même rubrique (1=nouveau,2=redoublants,3=triplant)
    -maintenant ma table mémoire montre seulement l'age ..

    ce n'est pas facile même pour un expert .
    -je ne suis qu'un amateur de programmation et je développe cette application pour gérer l'école où je travaille .

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    303
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 303
    Points : 815
    Points
    815
    Par défaut
    Bonjour à tous !

    @hadaf:
    Je te conseille de procéder avec méthode.

    Pour remplir le champ table mémoire, tu dois commencer par disposer des données.

    Tu peux commencer par une requête SQL qui construit un jeu de données comme dans le schéma ci-dessous.
    Ensuite, tu pourras envisager de construire et remplir le champ table.


    Citation Envoyé par hadaf Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT
    MIN(c1.genre) AS genre,
    c1.c1 AS c1,
    TRUNC( ( MONTHS_BETWEEN(SYSDATE ,c1.datnss )/ 12) ) AS age,
    COUNT(*) AS Compt_age
    FROM
    c1
    WHERE
    c1.c1 NOT LIKE '4'
    GROUP BY
    c1.c1,
    TRUNC( ( MONTHS_BETWEEN(SYSDATE ,c1.datnss )/ 12) )
    OK c vraiment du SQL
    ALORS
    comment faire pour isoler les (F) et les (G) pour chaque nivaux (nouveaux-redoublants-triplant) en prenant compte l'age?
    Si on reste sur ta requête, il faut ajouter la rubrique Genre dans la clause GROUP BY:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT
    TRUNC( ( MONTHS_BETWEEN(SYSDATE ,c1.datnss )/ 12) ) AS Age,
    c1.genre AS Genre,
    c1.c1 AS Situation,
    COUNT(*) AS Effectif
    FROM c1
    WHERE c1.c1 NOT LIKE '4'
    GROUP BY 
    TRUNC( ( MONTHS_BETWEEN(SYSDATE ,c1.datnss )/ 12) ), 
    c1.genre, 
    c1.c1
    Je n'ai pas testé la requête, c'est simplement une suggestion.

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

Discussions similaires

  1. Driver JDBC et Oracle - select très long
    Par mgax07 dans le forum JDBC
    Réponses: 5
    Dernier message: 20/02/2014, 10h03
  2. [XSLT] Processus de transformation PHP/XML/XSLT trés long
    Par krapno dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 30/08/2012, 12h04
  3. MYSQL : Premier SELECT très long
    Par re12 dans le forum Requêtes
    Réponses: 58
    Dernier message: 01/06/2012, 08h02
  4. [Perfs] Insert+select très long
    Par farenheiit dans le forum Administration
    Réponses: 39
    Dernier message: 07/08/2009, 14h36
  5. Réponses: 1
    Dernier message: 27/10/2007, 23h03

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