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

Langage SQL Discussion :

[Sybase] Compte du nombre d'utilisation par stratégie par client


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut [Sybase] Compte du nombre d'utilisation par stratégie par client
    Bonjour tt le monde,
    J'aimerais calculer le nombre de fois que chaque "stratégie" a ete utilisée par chaque client sachant qu’il existe n stratégies et p clients.

    Pour l’instant j’utilise :
    select count(i.INTERESTID) as NOMBRE, i.strategyCode
    from INTERESTS i
    where brokerID in (select u.userID from USERS u where clientID in
    (select c.clientID from CLIENTS c where c.ClientName="Client1"))
    group by i.strategyCode


    J’obtiens un résultat sous cette forme:
    voir pièce jointe

    Cela marche pour un client donné mais j’aimerais que cela me le fasse pour tous les clients d’un seul coup
    Résultat attendu:
    voir pièce jointe

    (Les stratégies non utilisées n’apparaissant pas).

    Pour info j’utilise Sybase comme SGBD.
    Merci à tout ceux qui auront essayé.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    As-tu essayé avec des jointures ?

    Il nous faudrait connaître les cardinalités de tes relations pour pouvoir mieux répondre.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Salut,
    peut tu nous donner la structure de tes tables s'il te plait ainsi que leurs relations, ca serai plus simple.
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  4. #4
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Structure des tables
    Alors,
    il y a la table INTERESTS dans laquelle j'ai les colonnes strategyCode et le brokerID qui est identique au userID de la table USERS.
    Et dans cette meme table USERS il y a clientID qui me sert à remonter à la table CLIENTS dans laquelle on retrouve ce clientID et le ClientName.
    Voilà j'espère que c'est clair
    Merci
    J'attends vos réponses

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Faute de connaître les cardinalités des relations, je proposerais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  c.clientID
          , i.strategyCode
          , COUNT(i.interestid) AS nombre
    FROM  interests AS i
      INNER JOIN  users   AS u
        ON  i.brokerID  = u.userID
      INNER JOIN  clients AS c
        ON  u.clientID  = c.clientID    
    GROUP BY  c.clientName
          ,   i.strategyCode
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Ne vaudrait-il pas mieux (afin de grouper par ce que l'on sélectionne )
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Voila ce que je te propose :
    SELECT ClientName, StrategyCode, COUNT(StrategyCode)
    FROM Interests, Clients, Users
    WHERE Clients.clientID=Users.userID
    AND Client.ClientID=Interests.brokerID
    GROUP BY StrategyCode;
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Citation Envoyé par Médiat
    Ne vaudrait-il pas mieux (afin de grouper par ce que l'on sélectionne )
    En effet, je ne me suis pas relu...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    ça y est, C bon!!!
    Merci à tous plus particulièrement à Griese qui m'a montré la voie à suivre...
    J'ai réussi à trouver la solution en faisant:

    SELECT ClientName, strategyCode, COUNT(strategyCode)
    FROM INTERESTS,CLIENTS,USERS
    WHERE INTERESTS.brokerID=USERS.userID and USERS.clientID=CLIENTS.clientID and CLIENTS.type=1
    GROUP BY strategyCode, ClientName order by 1, 2

    A bientôt

  10. #10
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Quand on peut rendre service
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compte de nombres divisibles par certains nombres premiers
    Par Orhleil dans le forum Mathématiques
    Réponses: 22
    Dernier message: 28/04/2014, 00h31
  2. [Toutes versions] [Etat] Compte le nombre d'enregistrements dans un sous-état par page
    Par DamKre dans le forum IHM
    Réponses: 11
    Dernier message: 11/03/2012, 19h45
  3. Fonction qui compte le nombre de jours ouvrés par mois
    Par griese dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2006, 15h32
  4. [BDE][Access] utilisation de BDDs sans passer par ODBC
    Par Guigui_ dans le forum Bases de données
    Réponses: 4
    Dernier message: 23/01/2005, 14h11
  5. Probleme de compte le nombre de Recordset
    Par nemesys971 dans le forum Access
    Réponses: 5
    Dernier message: 27/10/2004, 15h23

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