Hello
Je bloque sur un sacré probleme SQL qu'MS Access réalise sans probléme via une fonction interne LAST - qui n existe pas en SQL.
Donc j'ai une table DISCUSSIONS avec 4 champs
- Discussion = id de la discussion
- Commentaire = id du commentaire - chaque discussion ayant plusieurs commentaires
- Date = date du commentaire
- Txt = le texte du commentaire
L'objectif est de crée une table qui contient les 4 champs mais uniquement le dernier commentaire de chaque discussion.
Par exemple sur les premiers enregistrements ci-dessous, l'objectif est de ne sélectionner que ce qui est surligné en vert:
Blague inside - vous remarquerez que les mecs ont pas un vocabulaire très élaboré
Bon trêve de plaisanteries, avec Access, cela prend 1 minute, il suffit d'utiliser la fonction interne LAST et de l'appliquer a tous les champs sauf l'ID de la discussion qu'on groupe.
Maintenant comment faire en SQL ?!!!
On a diverses pistes avec select top1 d'une sous table, ou avec max qui peut remplacer last
Mais a chaque fois le problème c'est de rapatrier le champ Txt sur lequel on ne peut pas faire de regroupement sous peine de se retrouver avec plusieurs entrées par discussion vu que chaque commentaire est différent....
Quelqu'un aurait il une solution ?
Voici un échantillon maquillé de la table si certain veulent tester:
Je vous remercie d avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Discussion Commentaire Date Txt 5121624 10528551 03/08/2015 !15 5115202 10512847 31/07/2015 !15 5115202 10515924 21/07/2015 !ed 5109022 10512723 31/07/2015 !e. 5105199 10491278 28/07/2015 !ul 5102347 10528278 03/08/2015 !15 5096132 10465807 24/07/2015 !40 5096132 10491082 28/07/2015 !ul 5096048 10468303 24/07/2015 !n. 5093189 10450602 22/07/2015 !OZ 5093189 10468872 24/07/2015 !re 5092970 10452443 22/07/2015 !d. 5092970 10491044 28/07/2015 !ul 5090356 10537706 04/08/2015 !p. 5086841 10468871 24/07/2015 !r. 5086515 10451717 22/07/2015 !57 5086515 10465768 24/07/2015 Ak. 5086515 10522173 02/08/2015 !ss 5086487 10450301 22/07/2015 !OZ 5086211 10515918 31/07/2015 !ed 5081965 10515909 31/07/2015 !ed 5081642 10465872 24/07/2015 !DD 5081642 10514454 31/07/2015 !ed 5074566 10505236 30/07/2015 !ed 5072378 10522171 02/08/2015 !ss 5071086 10451962 22/07/2015 !4. 5071086 10460145 23/07/2015 !n. 5071086 10465307 24/07/2015 !n. 5071086 10466872 24/07/2015 !st 5061729 10409529 15/07/2015 Ded
Partager