OVH Cloud OVH Cloud

Dernier enregistrement

1 réponse
Avatar
JPG
Bonsoir,

Dans ACCES j'arrive à faire des regroupements sur le "dernier"
enregistrement avec la syntaxe suivante :

SELECT MaTable.ChampClient, Last(MaTable.ChampMontant)
FROM MaTable
GROUP BY MaTable.ChampClient

afin d'obtenir pour chaque client le dernier montant saisi dans la table.

Dans SQL SERVER, je ne retrouve pas la fonction "Last". Existe-t-elle ?

Si ou laquelle est-elle ? Sinon quelle est la solution ?

Merci beaucoup pour votre aide.

JPG

1 réponse

Avatar
Christian Robert
Bonjour,

Le mot clef en question n'existe pas dans SQL Server et n'a pas
d'équivalent...

Pour comprendre il faut savoir qu'un table ou un jeu d'enregistrement (sans
index) n'est pas trié... La dernière saisie peut être ou non le "dernier"
enregistrement en fait SQL Server le met là où il y a de la place et sans
index il n' y aucun tri sur la table...

Il y a une méthode plus claire pour faire ce que vous souhaitez :

SELECT TOP 1 mon_champ
FROM ma_table
ORDER BY mon_champ_de_tri DESC

Je récupère donc le dernier enregistrement par rapport à un tri sur un
champs qui peut être une clef auto-incrémentale ou une date de saisie (champ
datetime avec valeur par défaut GETDATE()) par exemple... Au moins on sait
précisement la définition du "dernier" enregistrement sans risque d'erreur !

Cordialement

------------------------------
Christian Robert
Winwise
MCT - MCDBA - MCSD.Net


"JPG" a écrit :

Bonsoir,

Dans ACCES j'arrive à faire des regroupements sur le "dernier"
enregistrement avec la syntaxe suivante :

SELECT MaTable.ChampClient, Last(MaTable.ChampMontant)
FROM MaTable
GROUP BY MaTable.ChampClient

afin d'obtenir pour chaque client le dernier montant saisi dans la table.

Dans SQL SERVER, je ne retrouve pas la fonction "Last". Existe-t-elle ?

Si ou laquelle est-elle ? Sinon quelle est la solution ?

Merci beaucoup pour votre aide.

JPG