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 :

Query - Select max


Sujet :

Développement SQL Server

  1. #1
    Membre confirmé Avatar de Blaede
    Profil pro
    Inscrit en
    Août 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 120
    Par défaut Query - Select max
    Salutations !

    J'ai du mal à écrire une query qui j'en suis certain vous paraîtra très simple

    J'ai une table contenant des comptes et la balance de ces comptes pour chaque jour de l'année. Je voudrais pour certains de ces comptes la balance maximum de l'année 2008.

    J'aurai donc quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT compte, date, balance
    FROM T
    WHERE compte IN ('compte1', 'compte2', ...) and [year] = 2008
    Mais question est : où dois-je mettre le max(balance) ? Dans le select ? Dans une clause HAVING ?

    Merci d'avance !

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Sans doute la requête suivante, mais il me faut le script de creation de la table T pour confirmer car je doute de l'existence d'une colonne date et d'une colonne year???? donc si vous avez 1 ligne par compte et par année la rqt ci dessous est OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT compte, [year], max(balance)
    FROM T
    WHERE compte IN ('compte1', 'compte2', ...) AND [year] = 2008
    group by compte, [year]

  3. #3
    Membre confirmé Avatar de Blaede
    Profil pro
    Inscrit en
    Août 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 120
    Par défaut
    Dans la table on trouve la balance de chaque compte pour chaque jour de l'année. Il y a donc une colonne date (yyyymmjj), une colonne balance et une colonne compte.

    Donc idéalement j'aimerais un résultat du style :

    2008/08/13 | 458213659 | $23563.21
    2008/03/01 | 578634911 | $11.47
    ...

    Pour chaque compte de la liste de comptes qui m'intéressent je dois avoir le jour de l'année 2008 où la balance de ce compte a été la plus élevée.

    Hors quand j'exécute la query suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT
    		max(balance),
    		account,
    		dt
    FROM
    		Balances
    WHERE
    		account IN ('4662719780', '7731679780', '4692109780')
    		[year] = '2008'
    GROUP BY
    		account,
    		dt
    J'obtiens plusieurs dates par compte...

Discussions similaires

  1. problème avec un select max
    Par bobic dans le forum Oracle
    Réponses: 7
    Dernier message: 14/11/2005, 11h22
  2. [SQL] requete select max
    Par kabikou dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 19/10/2005, 16h18
  3. Aide pour un SELECT MAX(...)
    Par Gladiator dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/06/2005, 16h48
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Problème select MAX(annee) dans une requête
    Par grisounette dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 28/10/2004, 17h36

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