Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1537 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SUM .... oui mais comment ... ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SUM .... oui mais comment ... ?

n°1496730
locas
Posté le 28-12-2006 à 17:17:55  profilanswer
 

Bonjour,
 
Je suis sous MYSQL et je cherche a effectuer la somme d'une collone (DUREE_MN) contenue dans la requete suivante :
 
SELECT M.PSEUDO, M.CLASSE, (hour(DI.DATE_FIN-DI.DATE_DEBUT)*60 + minute(DI.DATE_FIN-DI.DATE_DEBUT) - (DATEDIFF(DI.DATE_FIN, DI.DATE_DEBUT)*4560)) AS DUREE_MN
FROM dkp_in DI, membres M
WHERE M.ID = DI.ID_MEMBRE
AND M.ACTIF = 1
AND DI.ACTIF = 1
ORDER BY PSEUDO

 
 
 
 
le résultat est le suivant :
 
PSEUDO           CLASSE    DUREE_MN
Toto              MAGE       90
Toto              MAGE       190
Dupond            DRUIDE     120

 
 
 
En fait, je souhaiterais avoir ce résultat :
 
PSEUDO           CLASSE    DUREE_MN
Toto              MAGE       280
Dupond            DRUIDE     120

 
 
J'ai essayé de faire ca mais ca ne marche pas !!!
 
SELECT R1.PSEUDO, R1.CLASSE, SUM(R1.DUREE_MN) AS NB_DKP FROM
(
SELECT M.PSEUDO, M.CLASSE, DI.ID_MEMBRE, DI.DATE_DEBUT, DI.DATE_FIN, DI.LIBELLE_RAID, (hour(DI.DATE_FIN-DI.DATE_DEBUT)*60 + minute(DI.DATE_FIN-DI.DATE_DEBUT) - (DATEDIFF(DI.DATE_FIN, DI.DATE_DEBUT)*4560)) AS DUREE_MN
FROM dkp_in DI, membres M
WHERE M.ID = DI.ID_MEMBRE
AND M.ACTIF = 1
AND DI.ACTIF = 1
ORDER BY PSEUDO
) R1
GROUP BY R1.PSEUDO, R1.DUREE_MN, R1.CLASSE  
LIMIT 0,100

 
 
Je vous remercie par avance de vos réponses :)


Message édité par locas le 28-12-2006 à 17:18:33
mood
Publicité
Posté le 28-12-2006 à 17:17:55  profilanswer
 

n°1496926
betsamee
Asterisk Zeperyl
Posté le 29-12-2006 à 08:21:18  profilanswer
 

en lisant en diagonale ta requete vires le R1.DUREE_MN de ton group by

n°1496985
Beegee
Posté le 29-12-2006 à 10:57:02  profilanswer
 

SELECT M.PSEUDO, M.CLASSE, SUM(hour(DI.DATE_FIN-DI.DATE_DEBUT)*60 + minute(DI.DATE_FIN-DI.DATE_DEBUT) - (DATEDIFF(DI.DATE_FIN, DI.DATE_DEBUT)*4560)) AS NB_DKP
FROM dkp_in DI, membres M
WHERE M.ID = DI.ID_MEMBRE
AND M.ACTIF = 1
AND DI.ACTIF = 1
GROUP BY M.PSEUDO, M.CLASSE  
LIMIT 0,100

n°1497001
locas
Posté le 29-12-2006 à 11:45:59  profilanswer
 

merci pour ces réponses.
 
J'ai essayé vos 2 solutions mais j'ai le meme résultat qu'avec ma première solution. C'est assez bizarre :(
 
Je peux vous fournir le script si vous voulez pour essayer :
 
-- phpMyAdmin SQL Dump
-- version 2.9.0.3
-- http://www.phpmyadmin.net
--  
-- Serveur: localhost
-- Généré le : Vendredi 29 Décembre 2006 à 11:45
-- Version du serveur: 5.0.27
-- Version de PHP: 5.2.0
--  
-- Base de données: `dkp`
--  
 
-- --------------------------------------------------------
 
--  
-- Structure de la table `dkp_in`
--  
 
CREATE TABLE `dkp_in` (
  `ID` bigint(20) NOT NULL auto_increment,
  `DATE_DEBUT` datetime NOT NULL,
  `DATE_FIN` datetime NOT NULL,
  `LIBELLE_RAID` varchar(250) NOT NULL,
  `ID_MEMBRE` bigint(20) NOT NULL,
  `ACTIF` smallint(6) NOT NULL default '1',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
 
--  
-- Contenu de la table `dkp_in`
--  
 
INSERT INTO `dkp_in` (`ID`, `DATE_DEBUT`, `DATE_FIN`, `LIBELLE_RAID`, `ID_MEMBRE`, `ACTIF`) VALUES  
(1, '2006-12-28 15:00:36', '2006-12-28 16:30:36', 'Molten Core', 1, 1),
(2, '2006-12-20 20:06:33', '2006-12-20 23:16:33', 'BWL', 1, 1),
(3, '2006-12-20 23:06:33', '2006-12-21 01:06:33', 'BWL', 4, 1);
 
-- --------------------------------------------------------
 
--  
-- Structure de la table `dkp_out`
--  
 
CREATE TABLE `dkp_out` (
  `ID` bigint(20) NOT NULL auto_increment,
  `ID_RAID` bigint(20) NOT NULL,
  `ID_MEMBRE` bigint(20) NOT NULL,
  `ID_ITEM` bigint(20) NOT NULL,
  `DKP_DEPENSE` int(11) NOT NULL default '0',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
--  
-- Contenu de la table `dkp_out`
--  
 
 
-- --------------------------------------------------------
 
--  
-- Structure de la table `membres`
--  
 
CREATE TABLE `membres` (
  `ID` bigint(20) NOT NULL auto_increment,
  `PSEUDO` varchar(150) NOT NULL,
  `CLASSE` varchar(100) NOT NULL,
  `ACTIF` tinyint(4) NOT NULL default '1',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
 
--  
-- Contenu de la table `membres`
--  
 
INSERT INTO `membres` (`ID`, `PSEUDO`, `CLASSE`, `ACTIF`) VALUES  
(1, 'Dragonaute', 'MAGE', 1),
(2, 'Kpcube', 'DEMONISTE', 1),
(3, 'Guertly', 'VOLEUR', 1),
(4, 'Zynie', 'DRUIDE', 1),
(5, 'Ratchet', 'GUERRIER', 1),
(6, 'Chassetou', 'CHASSEUR', 1);
 
Merci par avance à vous tous :)

n°1497024
Beegee
Posté le 29-12-2006 à 12:12:34  profilanswer
 

Donne les détails de l'erreur mySql ... :)

n°1497025
locas
Posté le 29-12-2006 à 12:16:08  profilanswer
 

En fait, aucune erreur mais juste 0 enregistrements retournés

n°1497040
pains-aux-​raisins
Fatal error
Posté le 29-12-2006 à 12:44:05  profilanswer
 

es tu sûr qu'il y a bien des enregistrements dans tes tables ?

n°1497060
locas
Posté le 29-12-2006 à 13:25:24  profilanswer
 

Oui tout a fait sûr ( cf. script ci-dessus )

n°1497066
Beegee
Posté le 29-12-2006 à 13:31:43  profilanswer
 

Ecris la requête par étapes, d'abord la jointure, puis le group by, et vérifie les lignes retournées ...

n°1497069
locas
Posté le 29-12-2006 à 13:35:15  profilanswer
 

ok je vais reessayer de la construire. Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SUM .... oui mais comment ... ?

 

Sujets relatifs
[Mysql] Sum() avec liaison de table ????[VBAcEXCEL03][DOne] Faire la SUM des cellules qui ne sont pas en gras
[Sql server] SUM sur un datetimerequete SQL avec condition sur SUM
[XSL] sum sur des montants à virgule[MYSQL] plusieur requete pour le meme champ avec des SUM
[MySQL]fonction sum avec plusieurs arguments???[php] Tordu : Afficher le SUM de plusieurs DECODE passés en variable ?
[SQL] order by Sum(...)[PHP]Récuperer le résultat d'un SUM en PHP ?
Plus de sujets relatifs à : SUM .... oui mais comment ... ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR