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 8-|

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