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 :

Comparaison entre des sommes groupées par ID ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Chargé d'Exploitation et Coordinateur de Projets Informatique
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'Exploitation et Coordinateur de Projets Informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Par défaut Comparaison entre des sommes groupées par ID ?
    Bonjour,

    Google est mon ami, et je m'en suis sorti maintes fois grâce à lui. Mais cette fois-ci, j'ai beau parcourir "les internets", je n'ai pas trouvé de discussion sur quelque forum que ce soit qui soit vraiment en rapport avec la requête que je dois effectuer. C'est pourquoi je viens solliciter les membres de ce forum en espérant y trouver de l'aide.

    Je vous expose la difficulté à laquelle je fais face.

    La table contient des écritures comptables, et 3 champs nous intéressent ici. Appelons la table ECRITURES, et les champs code (car (4)), debit (numeric (10,2)), et credit (numeric (10,2)).

    Je dois récupérer la liste de tous les codes dont la valeur est :
    - soit vide / null,
    - soit en lettres minuscules,
    - soit en lettres majuscules dont la somme des débits n'est pas égale à la somme des crédit.

    Pour les codes à vide (null) ou en lettres minuscules, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ECRITURES e where lower(e.code) = e.code
    mais il faut que je complète cette requête pour obtenir les autres écritures.

    Des exemples :
    code debit credit
    1 10 0
    1 15 0
    1 0 25
    2 0 40
    2 20 0

    Il faudrait que ma requête me renvoie le code 2 (parce que 20 n'est pas égal à 40) mais pas le code 1 (parce que 10 + 15 est bien égal à 25).

    Existe-t-il un moyen de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select code from ECRITURES where sum(debit) <> sum(credit) grouped by code
    ?
    J'écris volontairement "grouped" pour traduire ma recherche et l'idée que je cherche à retranscrire.

    En vous remerciant par avance pour vos éclairages.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    C'était presque ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT  code 
    FROM    ecritures
    GROUP BY code
    HAVING  SUM(debit) <> SUM(credit)
    Pour aller plus loin, il existe un tutoriel : Groupage, ensembles et sous ensembles
    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
    Nouveau candidat au Club
    Homme Profil pro
    Chargé d'Exploitation et Coordinateur de Projets Informatique
    Inscrit en
    Février 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'Exploitation et Coordinateur de Projets Informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2016
    Messages : 2
    Par défaut
    Bon sang mais c'est bien sûr ! Désolé, c'était du basique, mais ne pratiquant pas souvent, j'avais complètement oublié. Merci beaucoup !

  4. #4
    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
    Par défaut
    Bonjour,

    Citation Envoyé par fookooflakman Voir le message

    Pour les codes à vide (null) ou en lettres minuscules, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from ECRITURES e where lower(e.code) = e.code

    Attention, ceci ne vous renverra pas les lignes où code est NULL.
    Concernant la vérification des minuscules, cela ne fonctionnera que si vous avez une collation sensible à la casse, sinon le filtre sera inopérant.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/10/2012, 15h24
  2. [XL-2003] Naviguer entre des feuilles excel par UserForm
    Par P96O1004 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2009, 09h15
  3. Faire la somme des champs groupés par identifiant
    Par Xavinou57 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/12/2008, 15h27
  4. Réponses: 6
    Dernier message: 15/05/2008, 15h20
  5. [Access2003/SQLserver2000]Comparaison entre des dates (champs texte)
    Par hoaxpunk dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/06/2007, 13h21

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