Statistiques

skydaash Messages postés 7 Date d'inscription mardi 18 avril 2017 Statut Membre Dernière intervention 19 avril 2017 - 18 avril 2017 à 11:51
skydaash Messages postés 7 Date d'inscription mardi 18 avril 2017 Statut Membre Dernière intervention 19 avril 2017 - 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
A voir également:

5 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
18 avril 2017 à 13:20
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.
0
skydaash Messages postés 7 Date d'inscription mardi 18 avril 2017 Statut Membre Dernière intervention 19 avril 2017
18 avril 2017 à 13:34
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.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
18 avril 2017 à 13:55
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.
0
skydaash Messages postés 7 Date d'inscription mardi 18 avril 2017 Statut Membre Dernière intervention 19 avril 2017
18 avril 2017 à 14:06
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 ^^
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
18 avril 2017 à 20:54
ou tu peux chercher dans les sources.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
18 avril 2017 à 21:14
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);

0
skydaash Messages postés 7 Date d'inscription mardi 18 avril 2017 Statut Membre Dernière intervention 19 avril 2017
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.
0
Rejoignez-nous