[SQL] une somme un peu spéciale...
4 messages
• Page 1 sur 1
- fraid26
- WRInaute discret

- Messages: 139
- Inscription: 3 Oct 2008
[SQL] une somme un peu spéciale...
Bonjour à tous !
Je dois faire une somme un peu spéciale avec une de mes tables.
Pour simplifier, la table pourrait ressembler à cela :
Je dois faire la somme de (nombre) pour chaque id_activite (qu'il soit dans la colonne id_activite, ou id_activite_bis entre deux #). Actuellement je le fait grâce à une variable, avec WHERE id_activite='$id' OR id_activite_bis LIKE '#$id#', et ça fonctionne sans problème.
Cependant, je dois faire cette somme pour plusieurs id_activite, et chaque requête est un peu longue. J'aimerais donc précharger toutes les sommes dans un tableau dès le début, auquel cas je n'ai plus de variable $id. L'idée serait donc de passer par un GROUP BY.
Seulement je ne sais pas comment ajouter id_activite et id_activite_bis dans un même group by.
J'ai essayé cela :
mais le problème est que seules les lignes avec le id_activite et id_activite_bis équivalents sur la même ligne sont retournées. (3eme ligne dans mon exemple : 3 et #3# sont sur la même ligne).
Merci de votre aide, j'espère avoir été clair !
Je dois faire une somme un peu spéciale avec une de mes tables.
Pour simplifier, la table pourrait ressembler à cela :
- Code: Tout sélectionner
id nombre id_activite id_activite_bis
110 10 1 #5#
111 20 2 #1#
112 30 3 #3#
Je dois faire la somme de (nombre) pour chaque id_activite (qu'il soit dans la colonne id_activite, ou id_activite_bis entre deux #). Actuellement je le fait grâce à une variable, avec WHERE id_activite='$id' OR id_activite_bis LIKE '#$id#', et ça fonctionne sans problème.
Cependant, je dois faire cette somme pour plusieurs id_activite, et chaque requête est un peu longue. J'aimerais donc précharger toutes les sommes dans un tableau dès le début, auquel cas je n'ai plus de variable $id. L'idée serait donc de passer par un GROUP BY.
Seulement je ne sais pas comment ajouter id_activite et id_activite_bis dans un même group by.
J'ai essayé cela :
- Code: Tout sélectionner
SELECT SUM(id_compte), id_activite
FROM matable
where id_activite_bis like '#'+CAST(id_activite as varchar)+'#'
group by id_activite
mais le problème est que seules les lignes avec le id_activite et id_activite_bis équivalents sur la même ligne sont retournées. (3eme ligne dans mon exemple : 3 et #3# sont sur la même ligne).
Merci de votre aide, j'espère avoir été clair !
- jcaron
- WRInaute accro

- Messages: 2687
- Inscription: 13 Fév 2004
Re: [SQL] une somme un peu spéciale...
Probablement quelque chose comme ça:
Non?
Note que le UNION va par défaut éliminer les doublons, et c'est pour ça qu'on garde id dans le sub-select même si on n'en a pas vraiment besoin.
Jacques.
- Code: Tout sélectionner
SELECT id_activite,sum(nombre) FROM (SELECT id,nombre,id_activite FROM table UNION SELECT id,nombre,cast(replace(id_activite_bis,'#','') as integer) s GROUP BY id_activite
Non?
Note que le UNION va par défaut éliminer les doublons, et c'est pour ça qu'on garde id dans le sub-select même si on n'en a pas vraiment besoin.
Jacques.
4 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Requête SQL Somme
- Requete spéciale SQL
- Système de classement sql un peut spéciale ?
- Redirection spéciale vers une page spéciale
- Somme astronique pour un lien
- MYSQL ORDER BY... somme de colonnes
- somme nous en période de googledance là ?
- pr7 pour la maudique somme de
- Somme des revenus du mois incorrecte
- Ecart Coût total et somme des coûts
- Google Answers ferme ses portes - 29-11-2006
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Google acquiert YouTube pour 1,65 Md$ - 10-10-2006
- Google rachète Postini, spécialiste de la sécurité Internet - 09-07-2007
- Les meilleurs annuaires, classés par Page Strength - 08-08-2006
- Ybrant Digital rachète Lycos.com 36 M$ - 16-08-2010
- Yahoo va ouvrir un data center à Avenches en Suisse - 08-10-2007
- Picasa Web Albums en français - 08-12-2006
Qui est en ligne
Utilisateurs parcourant ce forum: Wefficient et 0 invités

