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 :

Somme des valeurs d'une colonne d'une table en fonction des différentes valeurs d'une colonne d'une autre tabl


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 66
    Points : 101
    Points
    101
    Par défaut Somme des valeurs d'une colonne d'une table en fonction des différentes valeurs d'une colonne d'une autre tabl
    Bonjour à tous,
    Je viens d'effectuer un test de sélection pour un poste de gestionnaire de base de données dans une entreprise et il m'a été posé la question suivante:

    Soit les tables suivantes:

    Table1
    Compte_no Date_no Debit_Credit
    1234567891A 01/02/2008 0
    1234567891B 01/02/2008 1
    1234567891C 04/02/2008 1
    1234567891D 05/03/2008 1
    1234567891E 25/03/2008 1


    Table2
    Compte_no Montant
    1234567891E 23 000£
    1234567891C 5 800£
    1234567891A 28 200£
    1234567891D 10 500£
    1234567891B 4 250£


    Puis l'on me pose la question suivante:

    Afficher la somme des montants sachant que les chiffres 0 et 1 de la colonne Debit_Credit signifie respectivement Dédit et Crédit. Et je dois écrire cette requête en SQL.
    A vrai dire, je n'es pas pu répondre à cette question ne voyant pas comment procéder.
    Merci de bien vouloir m'aider à résoudre ce problème.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Il suffit de faire une jointure entre les deux tables, puis d'utiliser un CASE dans le SUM():
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select sum(case when couleur='vert' then 1 else 0 end)
    from table1
    ...

    Tatayo.

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Ou bien une solution à laquelle ils ne devaient pas s'attendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT    SUM( (Debit_Credit * 2 - 1) * Montant)
    FROM Table1 T1
    INNER JOIN Table2 T2
        ON T2.Compte_no = T1.Compte_no
    en fonction du type de la colonne Debit_Credit , il faudra peut être la transtyper...

  4. #4
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2013
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 66
    Points : 101
    Points
    101
    Par défaut
    A vrai dire, je ne comprends rien à ces requêtes que vous me suggérez.

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 561
    Points
    52 561
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par findjo Voir le message
    A vrai dire, je ne comprends rien à ces requêtes que vous me suggérez.
    Il serait peut être temps de se former au langage SQL ????

    1) ls site web : http://sqlpro.developpez.com/
    2) le livre : Nom : Couverture SQL Synthex 4e ed - 500.jpg
Affichages : 548
Taille : 77,8 Ko

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/06/2015, 02h28
  2. Colonnes protégées ou modifiables en fonction des valeurs d'une autre colonne
    Par romjeripa dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 09/02/2015, 15h57
  3. Réponses: 0
    Dernier message: 14/02/2014, 11h15
  4. Réponses: 3
    Dernier message: 18/12/2009, 12h33
  5. Réponses: 2
    Dernier message: 13/12/2007, 15h02

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