IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Sum Sur valeur Inferieur.(Expert)


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2002
    Messages : 80
    Par défaut Sum Sur valeur Inferieur.(Expert)
    Bonjour à tous,

    je rencontre une difficulté sur une somme.

    Voila un exemple je possède une table avec un id, une valeur, un compteur

    il faudrait que je puisse faire la somme
    groupé sur cet ID, mais des valeur inférieur ou égale au compteur.


    comme suit.
    id val cpt
    1 10 2
    1 15 3
    1 20 1


    Cherche à faire ceci.
    id val cpt result
    1 20 1 20
    1 10 2 30
    1 15 3 45


    En fait pouvoir faire une somme sur l'id mais des valeurs inférieur ou égal au ptit compteur (cpt).

    je n'ai réussi qu'en faisant une table liée mais du coup les temps s'envole et j'aime pas trop cette solution.

    je suis sql 2008 y'a t'il une fonction du style rownumber mais qui me les additionne ?



    Merci par avance.
    Ch.

  2. #2
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Peut etre qu'avec une auto jointure, vous pourrez recuperer ce qu'il vous faut, du genre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT 
    	B.id, B.Val, B.cpt, Sum(A.val)
    FROM
    	MaTable A
    INNER JOIN
    	MaTable B
    ON
    	A.cpt<=B.cpt
    GROUP BY B.id, B.val, B.cpt
    A tester et adapter

    Bon courage

  3. #3
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    je pense qu'il faut aussi rajouter un a.id = b.id dans le where.

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2002
    Messages : 80
    Par défaut
    bonjour,

    c'est la solution que j'utilise aujourd'hui mais elle est très loin d’être optimale coté performance.
    Sachant que j'en ai ~290000 ça me prends plus d'une heure.
    je cherche donc a savoir si la méthode est bonne ?
    et/ou si il n'existe pas de fonction qui pourrait faire le travail bien plus rapidement.

  5. #5
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    plus d'une heure ? avec des indexes sur le compteur ?

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2002
    Messages : 80
    Par défaut
    Citation Envoyé par Yanika_bzh Voir le message
    plus d'une heure ? avec des indexes sur le compteur ?
    oui, en meme temps mon traitement est un peu plus complexe.
    il y a 2 identifiant et le processus fait 2 sommes qu'il divise.

    mais pour la compréhension du problème c'est exactement ça.

    bon j'avoue aussi que 290000 avec cette méthode ça doit faire beaucoup de requête.

    donc je cherche une autre piste.

  7. #7
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    il serait interessant cependant d'analyser le plan d'execution.

Discussions similaires

  1. [Vxi3] Valeur MIN ou MAX d'une SUM sur un indicateur ?
    Par samy37 dans le forum Designer
    Réponses: 5
    Dernier message: 11/08/2011, 19h09
  2. Réponses: 21
    Dernier message: 13/12/2007, 14h47
  3. Problème de SUM sur une absence de valeur
    Par NicoNGRI dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/01/2007, 23h33
  4. Sum sur un champ Time
    Par Régent dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/02/2005, 23h39
  5. [XSLT][ACCESS]condition sur valeur
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 23
    Dernier message: 10/01/2005, 14h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo