Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2011, 15h32   #1
Membre à l'essai
 
Inscription : juin 2003
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 50
Points : 22
Points : 22
Par défaut [2008] sous total par enregistrement

Bonjour a tous !

Je fais appel a vos compétence parce-que je tourne en rond sur ce forum, google et autre, et je ne trouve pas de moyen d'arriver a mes fins. V'la le problème :

J'ai une table qui stocke une séquence de postes de travail dans un ordre particulier avec une durée de travail pour chaque poste :
Code :
1
2
3
4
5
6
7
8
9
10
 
SELECT * FROM postes ORDER BY ordre :
 
poste ordre	duree
1	0	60
8	1	45
9	2	30
1	3	60
9	5	60
...
Je voudrais ajouter une colonne "sous total" pour chaque poste reprenant la somme de postes précédent dans l'ordre
ex :
Code :
1
2
3
4
5
6
7
8
 
poste	ordre	duree  sousTotal
1	0	60	60
8	1	45	105
9	2	30	135
1	3	60	195
9	5	60	255
...
Et je me prends la tête la dessus, récursivité, regroupement... je ne vois pas du tout quelle requête lancer pour arriver à ça.
Je commence a me poser le problème en utilisant un curseur, mais je trouve ça super lourd.
Quelqu'un aurait-il une meilleure idée ? je suis passé a coté d'un truc tout simple ?... bref a l'aide !

Merci d'avance.
niouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 15h42   #2
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 782
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 1 782
Points : 2 764
Points : 2 764
Et en procédant comme ceci :
Code :
1
2
3
4
SELECT p.Ordre, p.poste, sum(np.duree) AS SumDuree
FROM postes p CROSS JOIN postes np
WHERE np.ordre <= p.ordre
GROUP BY p.ordre, p.poste
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 16h13   #3
Membre à l'essai
 
Inscription : juin 2003
Messages : 50
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 50
Points : 22
Points : 22
Citation:
Envoyé par calagan99 Voir le message
Et en procédant comme ceci :
Code :
1
2
3
4
SELECT p.Ordre, p.poste, sum(np.duree) AS SumDuree
FROM postes p CROSS JOIN postes np
WHERE np.ordre <= p.ordre
GROUP BY p.ordre, p.poste
Tu gères mec !!!
Merci grandement !
niouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 16h25   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 769
Points : 17 769
Évitez le CROSS JOIN qui est couteux, faites un INNER JOIN :

Code :
1
2
3
4
5
SELECT p.Ordre, p.poste, sum(np.duree) AS SumDuree
FROM   postes p 
       INNER JOIN postes np
             ON np.ordre <= p.ordre
GROUP  BY p.ordre, p.poste
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 16h52   #5
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 782
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 1 782
Points : 2 764
Points : 2 764
Encore une fois, votre remarque est sensée.
Je ne sais pas pourquoi j'ai cherché si compliqué alors qu'une jointure interne faisait l'affaire
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h12.


 
 
 
 
Partenaires

Hébergement Web