Page 1 sur 1
Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 01:09
par donkeykick
Hey hey !
J'ai une petite question : Comment additionner des timestamps depuis une table secondaire ?
Pouvez-vous m'aider à écrire cette requête svp ?
En gros j'ai une table CLIENTS (ID_CLI (int6), NAME_CLI (varchar255)...)
et une table qui reprend des plages de connexion que j'ai appelé PLAGES (ID_PLA(int9), IN_PLA(datetime), OUT_PLA(datetime)...) grosso modo IN arrivée OUT départ.
L'idée est de faire une sorte de SUM de toutes les PLAGES pour chaque CLIENT.
En espérant avoir été clair.
Merki !
dk.
Re: Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 12:27
par toytoy
SELECT SUM(SELECT (IN_PLA - OUT_PLA) FROM PLAGES JOIN CLIENTS ON ID_CLI) AS TOTAL_CO
à tester

Re: Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 12:36
par ynx
Salut,
Quelque chose comme ceci ?
SELECT c.ID_CLI, c.NAME_CLI, SUM(p.OUT_PLA - p.IN_PLA) FROM CLIENTS c LEFT JOIN PLAGES p ON c.ID_CLI = p.ID_CLI GROUP BY c.ID_CLI
Re: Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 14:31
par donkeykick
Salut toytoy, salut ynx,
MERCI à tous les 2 pour votre soutien, c'est super sympa !
et pour vous dire que vous avez résolu mon problème.
En rajoutant la fonction UNIX_TIMESTAMP à SUM(UNIX_TIMESTAMP( p.OUT_PLA ) - UNIX_TIMESTAMP( p.IN_PLA ) ) ça marche du tonnerre !!!!!
MERCI ! MERCI !! MERCI !!!
Re: [RESOLU] Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 14:53
par donkeykick
Re, dernier point svp
comment faire pour rajouter une condition sur le sum
j'ai fait un "as total" que j'essaie de tester sur le where qui vient where total between 1 and 10 mais ça ne marche pas

Re: [RESOLU] Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 15:22
par yann18
Re, dernier point svp
comment faire pour rajouter une condition sur le sum
j'ai fait un "as total" que j'essaie de tester sur le where qui vient where total between 1 and 10 mais ça ne marche pas

pour filtrer les lignes ou la somme issue du groupement il faut appliquer la clause having.
//--
GROUP BY c.ID_CLI, c.NAME_CLI
HAVING total>1 AND total<10;
Re: [RESOLU] Sorte de SUM COUNT de plusieurs timestamps
Posté : 20 août 2014, 15:34
par donkeykick
Merci Yann, c'est ce que j'étais en train de tester. Je me reloggué pour poster la solution
Merci à toi également !
Code : Tout sélectionner
HAVING SUM(UNIX_TIMESTAMP(p.OUT) - UNIX_TIMESTAMP(p.IN))
BETWEEN 0 AND 10
++
do_ok