Statistiques

skydaash 7 Messages postés mardi 18 avril 2017Date d'inscription 19 avril 2017 Dernière intervention - 18 avril 2017 à 11:51 - Dernière réponse : skydaash 7 Messages postés mardi 18 avril 2017Date d'inscription 19 avril 2017 Dernière intervention
- 19 avril 2017 à 22:22
bonjour à tous,

j'ai actuellement à faire une application sur visual c# version 2010
je dois gérer la consommation d'utilisateurs sous la douche pour ensuite en faire des statistiques, c'est ici que démarre mes problèmes.

j'ai deux tables dans ma bdd
la première (nom, date d'inscription)
la deuxieme (nom,volume,temps,jour,mois,année)

je dois donc faire des statistiques par utilisateurs, chaque mois, en additionnant le volume de toutes ses douches, de même pour le temps total sous la douche (toujours par mois)...
merci de vos réponses ;)

skydaash
Afficher la suite 

7 réponses

Répondre au sujet
Whismeril 11404 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 18 avril 2017 à 13:20
0
Utile
Bonjour

Pour avoir une réponse, encore faut il poser une question.

Pour info
Merci de garder à l'esprit que CodeS-SourceS et CCM sont des communautés d'entraide. Toutes les réponses sur le forum sont assurées par des bénévoles qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter également que nous ne faisons pas dans le "tout cuit". Soit tu trouves ton bonheur dans la partie sources du site, soit à l'aide de ton moteur de recherche favori. Ici, nous aidons volontiers sur une difficulté technique, précise et parfaitement isolée rencontrée dans le cours du développement.

Penser à poster le morceau de code qui pose problème, voir ici comment utiliser la coloration syntaxique. S'il y a un message d'erreur retranscrivez le dans son intégralité, en précisant à quelle ligne apparait cette erreur.

des conseils d'écriture des messages et ici et en particulier pour les devoirs scolaires ou PFE.

Merci donc de reformuler ta demande en respectant ces quelques points.



D'autre part dans les bases de données il existe des champs Date.
C'est bien plu sur pratique que trois champs.
Commenter la réponse de Whismeril
skydaash 7 Messages postés mardi 18 avril 2017Date d'inscription 19 avril 2017 Dernière intervention - 18 avril 2017 à 13:34
0
Utile
merci de te réponse rapide,
ma question est comment faire pour relever puis additionner tous les volumes consommés par une personne (données situées dans ma bdd)?


pour ce qui est des champs Date, j'ai pensé qu'il serait plus simple de tout separer pour pouvoir ensuite relever uniquement le mois et l'année.
Commenter la réponse de skydaash
Whismeril 11404 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 18 avril 2017 à 13:55
0
Utile
donc y a pleins de questions
  • comment on lit une base de données, ça c'est pas mon truc, et ça dépend de la base de données (access, sqlsever, etc...) y a des exemples dans les sources.
  • comment on fait des calculs sur les données
    • dans la base de données directement avec une requête qui va bien, mais c'est toujours pas mon truc
    • dans le programme à partir des données extraites, ça je peux t'aider.

Dans les 2 cas il est simple de chercher les données dont la date est comprise entre le 1 mars 2017 inclu et le 1 avril 2017 exclu, avec 3 champs il faut chercher mars et 2017.
Commenter la réponse de Whismeril
skydaash 7 Messages postés mardi 18 avril 2017Date d'inscription 19 avril 2017 Dernière intervention - 18 avril 2017 à 14:06
0
Utile
1
merci d'avoir pris du temps pour moi,
je vais continuer a chercher de mon coté et attendre quand même un expert en sql ^^
Whismeril 11404 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 18 avril 2017 à 20:54
ou tu peux chercher dans les sources.
Commenter la réponse de skydaash
Whismeril 11404 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 18 avril 2017 à 21:14
0
Utile
1
Si tu décides de faire les calculs dans le code, il te faudra stocker tes données via une classe.
Par exemple
    class Douche
    {
        public double Volume { get; set; }

        public string Nom { get; set; }

        public DateTime Date { get; set; }
    }



Et le calcul pourrait ressembler à ça
            List<Douche> lesDouches = new List<Douche>//collection de douche pour l'exemple
            {
                new Douche { Date = new DateTime(2017,02,27), Nom = "Jean Sort", Volume = 10.8},
                new Douche { Date = new DateTime(2017,03,02), Nom = "Jean Sort", Volume = 14.3},
                new Douche { Date = new DateTime(2017,03,02), Nom = "Alain di", Volume = 12.5},
                new Douche { Date = new DateTime(2017,03,09), Nom = "Jean Sort", Volume = 11.1},
                new Douche { Date = new DateTime(2017,03,15), Nom = "Jean Sort", Volume = 13.7},
                new Douche { Date = new DateTime(2017,03,23), Nom = "Jean Sort", Volume = 16.2},
                new Douche { Date = new DateTime(2017,04,02), Nom = "Jean Sort", Volume = 10.9},
            };



            //calcul à l'ancienne
            double somme = 0;
            int nombre = 0;
            DateTime debut = new DateTime(2017,03,01);//date du 1er du moi
            DateTime fin = debut.AddMonths(1).AddDays(-1);//date du dernier jour du moi = debut + 1 moi - 1 jour

            foreach (Douche d in lesDouches)
            {
                if (d.Date >= debut && d.Date <= fin )
                {
                    //on est dans la bonne tranche
                    if (d.Nom== "Jean Sort")
                    {
                        //c'est la bonne personne
                        somme += d.Volume;//on somme les volumes
                        nombre++;//on incrémente le nombre d’occurrences
                    }
                }
            }

            double moyenne = somme / nombre;

J'ai bien décomposé car tu me sembles débutant.

Si ça n'est pas le cas, ou pour voir vers quoi tu peux tendre, il y a Linq
            //calcul avec Linq
            DateTime debut2 = new DateTime(2017, 03, 01);//date du 1er du moi
            DateTime fin2 = debut.AddMonths(1).AddDays(-1);//date du dernier jour du moi = debut + 1 moi - 1 jour
            double moyenne2 = lesDouches.Where(d => d.Date >= debut2 && d.Date <= fin2 && d.Nom == "Jean Sort").Average(d => d.Volume);

skydaash 7 Messages postés mardi 18 avril 2017Date d'inscription 19 avril 2017 Dernière intervention - 19 avril 2017 à 22:22
excellent merci beaucoup à toi! en effet je suis plus que débutant (étudiant en SIN)
je vais regarder tout cela.
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.