OVH Cloud OVH Cloud

Requete : dernier record pour chaque client

3 réponses
Avatar
Bonjour,

Dans le cadre d'une nouvelle application, j'essaye de créer une requête pour
éviter de devoir passer par la programmation.
J'ai besoin un résultat particulier mais je ne suis pas sûr de pouvoir faire
ça via SQL.
Voici le problème en question :

Une table :
N° Client N° contrat Exercice Code
1 1 200401 F
1 1 200402 R
1 1 200403 F
1 2 200401 F
1 3 200401 F
1 3 200402 R
1 3 200403 C
1 3 200404 R
2 10 200401 F
2 10 200401 R
2 11 200401 F
2 12 200401 F
2 12 200402 R
2 12 200402 F

Et ansi de suite.

Je voudrais en fait sélectionner la dernière ligne de chaque client (en
fait, voir quel est le dernier code attribué à chaque contrat de chaque
client).
Donc, le résultat devrait être les lignes en oranges.

Quelqu'un a-t'il une idée pour écrire ça en SQL ?

Merci d'avance.

Serge

3 réponses

Avatar
Oups, je vois que mon tableau n'a pas pris.
Le résultat (ce qui était censé être en oranges) devrait être :

N° Client N° contrat Exercice Code
1 1 200403 F
1 2 200401 F
1 3 200404 R
2 10 200401 R
2 11 200401 F
2 12 200402 F


A+
Serge

<123> a écrit dans le message de
news:41135229$0$283$
Bonjour,

Dans le cadre d'une nouvelle application, j'essaye de créer une requête


pour
éviter de devoir passer par la programmation.
J'ai besoin un résultat particulier mais je ne suis pas sûr de pouvoir


faire
ça via SQL.
Voici le problème en question :

Une table :
N° Client N° contrat Exercice Code
1 1 200401 F
1 1 200402 R
1 1 200403 F
1 2 200401 F
1 3 200401 F
1 3 200402 R
1 3 200403 C
1 3 200404 R
2 10 200401 F
2 10 200401 R
2 11 200401 F
2 12 200401 F
2 12 200402 R
2 12 200402 F

Et ansi de suite.

Je voudrais en fait sélectionner la dernière ligne de chaque client (en
fait, voir quel est le dernier code attribué à chaque contrat de chaque
client).
Donc, le résultat devrait être les lignes en oranges.

Quelqu'un a-t'il une idée pour écrire ça en SQL ?

Merci d'avance.

Serge






Avatar
JeeCee
Select a.*
From maTable as a
Join (
Select [N° Client], MAX([N° contrat]) as Dernier_Contrat
From maTable
Groupy By [N° Client]
) as b On (a.[N° Client]=b.[N° Client] And a.[N° contrat]=b.Dernier_Contrat



<123> a écrit dans le message de news:41135229$0$283$
Bonjour,

Dans le cadre d'une nouvelle application, j'essaye de créer une requête pour
éviter de devoir passer par la programmation.
J'ai besoin un résultat particulier mais je ne suis pas sûr de pouvoir faire
ça via SQL.
Voici le problème en question :

Une table :
N° Client N° contrat Exercice Code
1 1 200401 F
1 1 200402 R
1 1 200403 F
1 2 200401 F
1 3 200401 F
1 3 200402 R
1 3 200403 C
1 3 200404 R
2 10 200401 F
2 10 200401 R
2 11 200401 F
2 12 200401 F
2 12 200402 R
2 12 200402 F

Et ansi de suite.

Je voudrais en fait sélectionner la dernière ligne de chaque client (en
fait, voir quel est le dernier code attribué à chaque contrat de chaque
client).
Donc, le résultat devrait être les lignes en oranges.

Quelqu'un a-t'il une idée pour écrire ça en SQL ?

Merci d'avance.

Serge
Avatar
Merci pour ta réponse mais dans ce cas, je ne retrouve que le dernier
contrat de chaque client.
Or, il me faut la dernière ligne de chaque contrat de chaque client.
Tu vois le problème ! :-(

A+
Serge

"JeeCee" a écrit dans le message de
news:cevtsu$2vle$
Select a.*
From maTable as a
Join (
Select [N° Client], MAX([N° contrat]) as Dernier_Contrat
From maTable
Groupy By [N° Client]
) as b On (a.[N° Client]=b.[N° Client] And a.[N°


contrat]=b.Dernier_Contrat



<123> a écrit dans le message de


news:41135229$0$283$
Bonjour,

Dans le cadre d'une nouvelle application, j'essaye de créer une requête


pour
éviter de devoir passer par la programmation.
J'ai besoin un résultat particulier mais je ne suis pas sûr de pouvoir


faire
ça via SQL.
Voici le problème en question :

Une table :
N° Client N° contrat Exercice Code
1 1 200401 F
1 1 200402 R
1 1 200403 F
1 2 200401 F
1 3 200401 F
1 3 200402 R
1 3 200403 C
1 3 200404 R
2 10 200401 F
2 10 200401 R
2 11 200401 F
2 12 200401 F
2 12 200402 R
2 12 200402 F

Et ansi de suite.

Je voudrais en fait sélectionner la dernière ligne de chaque client (en
fait, voir quel est le dernier code attribué à chaque contrat de chaque
client).
Donc, le résultat devrait être les lignes en oranges.

Quelqu'un a-t'il une idée pour écrire ça en SQL ?

Merci d'avance.

Serge