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

Requêtes MySQL Discussion :

requete calcul pourcentage


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 3
    Points
    3
    Par défaut requete calcul pourcentage
    Hello les amis,

    Je bosse actuellement sur un projet d'enquête en ligne et j'ai besoin d'aide.
    Voici ma question:
    J'affiche en PHP sur des pages dynamiques les résultats d'un questionnaire en ligne fait sur limesurvey, chaque page correspond à une enquête, jusqu'ici pas de problème.
    Les réponses aux questions de l'enquête sont excellent,bon,acceptable,a revoir.

    Exemple:
    Question 1:
    Le magasin est propre? excellent
    Question 2:
    Le magasin est bien décoré? acceptable
    Question 3:
    Le magasin est bien situé? excellent

    Je dois calculer le taux de satisfaction de chaque enquête, pour cela je dois faire le calcul suivant:
    (100%*réponsesexcellentes+65%*réponsesbon+50%*réponsesacceptables+1%*réponsesarevoir) / total des réponses.
    Donc pour notre exemple:
    (100%*2+65%*0+50%*1+1%*0) / 3

    Je ne sais pas si cela est possible en PHP, j'essaye de le faire en MYSQL mais je cale également.
    J'ai commencé par faire le truc ci-dessous mais ca ne marche pas.

    Code : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    select nom_boutique, sum(total_R1) as total_R1, sum(total_R2) as total_R2,  sum(total_R3) as total_R3, sum(total_R4) 
    as total_R4 from
    (
    select nom_boutique, sum(conversion_champ_vers_nombreR1) as total_R1, 
    sum(conversion_champ_vers_nombreR2) as total_R2,  sum(conversion_champ_vers_nombreR3) as total_R3, 
    sum(conversion_champ_vers_nombreR4) as total_R4 from  
    (
    select 45784X6X15 as nom_boutique,
    IF(45784X1X1Opi1="R1", 1, 0) as conversion_champ_vers_nombreR1, 
    IF(45784X1X1Opi1="R2", 1, 0) as conversion_champ_vers_nombreR2, 
    IF(45784X1X1Opi1="R3", 1, 0) as conversion_champ_vers_nombreR3,
    IF(45784X1X1Opi1="R4", 1, 0) as conversion_champ_vers_nombreR4 
     from lime_survey_45784
     )as subtemptable1
     group by nom_boutique
    union
    select nom_boutique, sum(conversion_champ_vers_nombreR1) as total_R1, 
    sum(conversion_champ_vers_nombreR2) as total_R2,  
    sum(conversion_champ_vers_nombreR3) as total_R3, 
    sum(conversion_champ_vers_nombreR4) as total_R4 from 
    (
    select 45784X6X15 as nom_boutique,
    IF(45784X1X1Opi2="R1", 1, 0) as conversion_champ_vers_nombreR1, 
    IF(45784X1X1Opi2="R2", 1, 0) as conversion_champ_vers_nombreR2, 
    IF(45784X1X1Opi2="R3", 1, 0) as conversion_champ_vers_nombreR3,
    IF(45784X1X1Opi2="R4", 1, 0) as conversion_champ_vers_nombreR4 
    from lime_survey_45784
     )as subtemptable2
     group by nom_boutique
    union
    select nom_boutique, sum(conversion_champ_vers_nombreR1) as total_R1, 
    sum(conversion_champ_vers_nombreR2) as total_R2,  
    sum(conversion_champ_vers_nombreR3) as total_R3, 
    sum(conversion_champ_vers_nombreR4) as total_R4 from  
    (
    select 45784X6X15 as nom_boutique,
     IF(45784X2X2Vis1="R1", 1, 0) as conversion_champ_vers_nombreR1, 
    IF(45784X2X2Vis1="R2", 1, 0) as conversion_champ_vers_nombreR2, 
    IF(45784X2X2Vis1="R3", 1, 0) as conversion_champ_vers_nombreR3,
    IF(45784X2X2Vis1="R4", 1, 0) as conversion_champ_vers_nombreR4 
     from lime_survey_45784
     )as subtemptable3
     group by nom_boutique
    union
    select nom_boutique, 
    sum(conversion_champ_vers_nombreR1) as total_R1, sum(conversion_champ_vers_nombreR2) as total_R2,  
    sum(conversion_champ_vers_nombreR3) as total_R3, sum(conversion_champ_vers_nombreR4) as total_R4 from  
    (
    select 45784X6X15 as nom_boutique,
     IF(45784X2X2Vis2="R1", 1, 0) as conversion_champ_vers_nombreR1, 
    IF(45784X2X2Vis2="R2", 1, 0) as conversion_champ_vers_nombreR2, 
    IF(45784X2X2Vis2="R3", 1, 0) as conversion_champ_vers_nombreR3,
    IF(45784X2X2Vis2="R4", 1, 0) as conversion_champ_vers_nombreR4 
     from lime_survey_45784
     )as subtemptable4 
     group by nom_boutique) as temptable2
     group by nom_boutique
    ;

    ci-dessous la structure de ma base:

    Code : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    CREATE TABLE IF NOT EXISTS `lime_survey_45784` (
      `id` int(11) NOT NULL auto_increment,
      `submitdate` datetime default NULL,
      `startlanguage` varchar(20) collate utf8_unicode_ci NOT NULL,
      `45784X6X15` text collate utf8_unicode_ci,
      `45784X6X16` text collate utf8_unicode_ci,
      `45784X6X17` text collate utf8_unicode_ci,
      `45784X6X18` text collate utf8_unicode_ci,
      `45784X1X1Opi1` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X1X1Opi2` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X2Vis1` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X2Vis2` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X3` varchar(1) collate utf8_unicode_ci default NULL,
      `45784X2X4vit1` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit3` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit4` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit5` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit6` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit7` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit8` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit9` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X4vit2` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X5` double default NULL,
      `45784X2X6att1` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X6att2` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X6att3` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X6att4` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X6att5` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X6att6` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X2X12` text collate utf8_unicode_ci,
      `45784X3X7am1` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am2` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am3` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am4` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am5` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am6` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am7` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am8` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am9` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am10` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am11` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am12` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am13` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am14` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X7am15` varchar(5) collate utf8_unicode_ci default NULL,
      `45784X3X8` varchar(1) collate utf8_unicode_ci default NULL,
      `45784X3X9` varchar(1) collate utf8_unicode_ci default NULL,
      `45784X3X10` double default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
     
    --
    -- Contenu de la table `lime_survey_45784`
    --
     
    INSERT INTO `lime_survey_45784` (`id`, `submitdate`, `startlanguage`, `45784X6X15`, `45784X6X16`, `45784X6X17`, `45784X6X18`, `45784X1X1Opi1`, `45784X1X1Opi2`, `45784X2X2Vis1`, `45784X2X2Vis2`, `45784X2X3`, `45784X2X4vit1`, `45784X2X4vit3`, `45784X2X4vit4`, `45784X2X4vit5`, `45784X2X4vit6`, `45784X2X4vit7`, `45784X2X4vit8`, `45784X2X4vit9`, `45784X2X4vit2`, `45784X2X5`, `45784X2X6att1`, `45784X2X6att2`, `45784X2X6att3`, `45784X2X6att4`, `45784X2X6att5`, `45784X2X6att6`, `45784X2X12`, `45784X3X7am1`, `45784X3X7am2`, `45784X3X7am3`, `45784X3X7am4`, `45784X3X7am5`, `45784X3X7am6`, `45784X3X7am7`, `45784X3X7am8`, `45784X3X7am9`, `45784X3X7am10`, `45784X3X7am11`, `45784X3X7am12`, `45784X3X7am13`, `45784X3X7am14`, `45784X3X7am15`, `45784X3X8`, `45784X3X9`, `45784X3X10`) VALUES
    (1, '1980-01-01 00:00:00', 'fr', 'magasin Bastille', 'Place de la bastille', '11 Novembre 2009 / 15h30 / 45 min', 'toto', 'R4', 'R4', 'R1', 'R1', 'N', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 2, 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'gfdg', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'Y', 'Y', 2),
    (2, '1980-01-01 00:00:00', 'fr', 'magasin Opéra', 'Place de l''opéra', '14 Juillet 2009 / 12h10 / 30 min', 'tutu', 'R3', 'R4', 'R2', 'R4', 'N', 'R2', 'R2', 'R2', 'R2', 'R2', 'R2', 'R2', 'R2', 'R2', 2, 'R3', 'R2', 'R1', 'R2', 'R2', 'R2', '21', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'R1', 'N', 'N', NULL);
    Merci pour votre aide.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    A quoi correspond R1,R2,R3 et R4?
    dans ton insertion, il y a des null, ces valeurs
    Peux tu nous expliquer un peu plus?

    merci

Discussions similaires

  1. Requete/VBA ? Calcul pourcentage
    Par cigit dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/02/2009, 10h24
  2. calcul pourcentage dans une requete imbriquée
    Par timal78 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/07/2007, 14h28
  3. [Requete] Calcul Somme entre deux temps pour chaque jour
    Par nico33307 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/03/2006, 00h58
  4. [SQL-Server] requete - calcul - erreur bizarre
    Par dor_boucle dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/03/2006, 15h27
  5. update pour calcul pourcentage (SQL SERVER 2000)
    Par meufeu dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/09/2005, 09h04

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