Je veux les transactions et les codes pour lesquelles le niveau est maximum
et la version maximum, sachant que la version est prioritaire.
Transaction Niveau Version code
teti 0 1 A
titi 1 2 A
tuta 0 1 B
tata 1 1 B
toto 0 1 C
tuto 1 1 C
renvoie:
titi 1 2 A
tata 1 1 B
tuto 1 1 C
La requête:
select a.transaction,max(version),max(niveau)
from ma_table a
group by a.transaction
fait très bien l'affaire mais comment l'adapter si je veux recuperer une 4
eme colonne ?
La requête:
select a.transaction,max(version),max(niveau), a.code,
from ma_table a
group by a.transaction, a.code
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sébastien Chavance
a noter que cette requete ne fonctionnera pas sous MySQL qui n'aime pas les sous-requetes (sauf peut etre en version 4) dans ce cas 2 requetes sont necessaires
Fred BROUARD - SQLpro a écrit dans le message :
SELECT Transaction, MAX(Niveau) as Niveau, Version, Code FROM (SELECT Transaction, Niveau, MAX(Version) AS Version, Code FROM MaTable GROUP BY Transaction, Niveau, Code) T GROUP BY Transaction, Version, Code
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Max a écrit: > Bonjour, > > Je veux les transactions et les codes pour lesquelles le niveau est
maximum
> et la version maximum, sachant que la version est prioritaire. > > Transaction Niveau Version code > > teti 0 1 A > > titi 1 2 A > > tuta 0 1 B > > tata 1 1 B > > toto 0 1 C > > tuto 1 1 C > > > > > > renvoie: > > > > titi 1 2 A > > tata 1 1 B > > tuto 1 1 C > > > La requête: > select a.transaction,max(version),max(niveau) > from ma_table a > group by a.transaction > > fait très bien l'affaire mais comment l'adapter si je veux recuperer une
4
> eme colonne ? > La requête: > select a.transaction,max(version),max(niveau), a.code, > from ma_table a > group by a.transaction, a.code > > > produit des resultats faux bien sûr. > > Merci de votre aide > > >
a noter que cette requete ne fonctionnera pas sous MySQL qui n'aime pas les
sous-requetes (sauf peut etre en version 4)
dans ce cas 2 requetes sont necessaires
Fred BROUARD - SQLpro <brouardf@club-internet.fr> a écrit dans le message :
3F1F9A50.3080902@club-internet.fr...
SELECT Transaction, MAX(Niveau) as Niveau, Version, Code
FROM (SELECT Transaction, Niveau, MAX(Version) AS Version, Code
FROM MaTable
GROUP BY Transaction, Niveau, Code) T
GROUP BY Transaction, Version, Code
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Max a écrit:
> Bonjour,
>
> Je veux les transactions et les codes pour lesquelles le niveau est
maximum
> et la version maximum, sachant que la version est prioritaire.
>
> Transaction Niveau Version code
>
> teti 0 1 A
>
> titi 1 2 A
>
> tuta 0 1 B
>
> tata 1 1 B
>
> toto 0 1 C
>
> tuto 1 1 C
>
>
>
>
>
> renvoie:
>
>
>
> titi 1 2 A
>
> tata 1 1 B
>
> tuto 1 1 C
>
>
> La requête:
> select a.transaction,max(version),max(niveau)
> from ma_table a
> group by a.transaction
>
> fait très bien l'affaire mais comment l'adapter si je veux recuperer une
4
> eme colonne ?
> La requête:
> select a.transaction,max(version),max(niveau), a.code,
> from ma_table a
> group by a.transaction, a.code
>
>
> produit des resultats faux bien sûr.
>
> Merci de votre aide
>
>
>
a noter que cette requete ne fonctionnera pas sous MySQL qui n'aime pas les sous-requetes (sauf peut etre en version 4) dans ce cas 2 requetes sont necessaires
Fred BROUARD - SQLpro a écrit dans le message :
SELECT Transaction, MAX(Niveau) as Niveau, Version, Code FROM (SELECT Transaction, Niveau, MAX(Version) AS Version, Code FROM MaTable GROUP BY Transaction, Niveau, Code) T GROUP BY Transaction, Version, Code
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Max a écrit: > Bonjour, > > Je veux les transactions et les codes pour lesquelles le niveau est
maximum
> et la version maximum, sachant que la version est prioritaire. > > Transaction Niveau Version code > > teti 0 1 A > > titi 1 2 A > > tuta 0 1 B > > tata 1 1 B > > toto 0 1 C > > tuto 1 1 C > > > > > > renvoie: > > > > titi 1 2 A > > tata 1 1 B > > tuto 1 1 C > > > La requête: > select a.transaction,max(version),max(niveau) > from ma_table a > group by a.transaction > > fait très bien l'affaire mais comment l'adapter si je veux recuperer une
4
> eme colonne ? > La requête: > select a.transaction,max(version),max(niveau), a.code, > from ma_table a > group by a.transaction, a.code > > > produit des resultats faux bien sûr. > > Merci de votre aide > > >