
Contributor II
2019-05-28
03:39 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
jointure sur 2 tables avec date derniere utilisation
- Tags:
- Group_Discussions
1,734 Views
1 Solution
Accepted Solutions

Partner - Creator
2019-05-28
06:40 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Essaie plutôt celui là :
CLIENTS:
LOAD
ID AS F_IDT_CLIENT, *;
LOAD * INLINE [
ID, NOM
1, aa
2, bb
3, cc
4, dd
]
;
MAILS:
LOAD * INLINE [
id_MAIL, EMAIL, DT_DER_UTI, F_IDT_CLIENT
7, aa_ole.com, 05/05/2019, 1
9, bb_ole.com, 09/09/2019, 2
74, cc_tyty.fr, 01/02/2017, 3
5, bbbbb_tyty.fr, 01/01/2018, 2
]
;
// Une table intermédaire avec Mails récents
INNER JOIN(MAILS)
LOAD
F_IDT_CLIENT,
Max(DT_DER_UTI) AS DT_DER_UTI
RESIDENT MAILS
GROUP BY F_IDT_CLIENT;
// Table finale
LEFT JOIN(CLIENTS)
LOAD *
RESIDENT MAILS;
DROP TABLE MAILS;
cordialement.
Excuse my english, i'm french!
6 Replies

Contributor II
2019-05-28
03:59 AM
Author
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bonjour ,
Ma problématique est simple, mais j'arrive pas à la résoudre dans QS.
J'ai deux tables
CLIENT
ID | NOM |
1 | aa |
2 | bb |
3 | cc |
4 | dd |
id_MAIL | DT_DER_UTI | F_IDT_CLIENT | |
7 | aa_ole.com | 05/05/2019 | 1 |
9 | bb_ole.com | 09/09/2019 | 2 |
74 | cc_tyty.fr | 01/02/2017 | 3 |
5 | bbbbb_tyty.fr | 01/01/2018 | 2 |
et je souhaite avoir une table de jointure avec chaque fois l'email le plus à jour pour chaque client (s'il existe)
ici pour le client bb , je récupère email ayant le F_IDT_CLIENT correspondant et la DT_DER_UTI la plus recente.
ID_CLIENT | NOM | id_MAIL | DT_DER_UTI | F_IDT_CLIENT | |
1 | aa | 7 | aa_ole.com | 05/05/2019 | 1 |
2 | bb | 9 | bb_ole.com | 09/09/2019 | 2 |
3 | cc | 74 | cc_tyty.fr | 01/02/2017 | 3 |
4 | dd |
Merci par avance de votre aide
1,732 Views

Partner - Creator
2019-05-28
04:41 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Bonjour,
Il te faut utiliser un MAX avec un GROUP BY sur ta table des mails avant d'effectuer ta jointure. Essaie le script ci-dessous:
// Chargement table client
CLIENT:
LOAD
ID AS ID_CLIENT,
Nom
FROM <chemin_acces_source>;
// Chargement de la table avec le max
LEFT JOIN(CLIENT)
LOAD
Max(DT_DER_UTI) AS DT_DER_UTI,
id_mail,
EMAIL,
F_IDT_CLIENT AS ID_CLIENT
FROM <chemin_acces_source>
GROUP BY F_IDT_CLIENT, id_mail, EMAIL;
cordialement.
Excuse my english, i'm french!
1,725 Views

Contributor II
2019-05-28
05:53 AM
Author
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
merci seiko,
Mais je n'ai pas le résultat attendu
Pour le client bb , je souhaite avoir qu'une seule ligne (cf pj en jaune)
1,719 Views

Partner - Creator
2019-05-28
06:03 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Je vais le tester et faire des ajustements. Il n'a pas fonctionné.
PS : C'est Seyko 🙂
PS : C'est Seyko 🙂
Excuse my english, i'm french!
1,715 Views

Partner - Creator
2019-05-28
06:40 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Essaie plutôt celui là :
CLIENTS:
LOAD
ID AS F_IDT_CLIENT, *;
LOAD * INLINE [
ID, NOM
1, aa
2, bb
3, cc
4, dd
]
;
MAILS:
LOAD * INLINE [
id_MAIL, EMAIL, DT_DER_UTI, F_IDT_CLIENT
7, aa_ole.com, 05/05/2019, 1
9, bb_ole.com, 09/09/2019, 2
74, cc_tyty.fr, 01/02/2017, 3
5, bbbbb_tyty.fr, 01/01/2018, 2
]
;
// Une table intermédaire avec Mails récents
INNER JOIN(MAILS)
LOAD
F_IDT_CLIENT,
Max(DT_DER_UTI) AS DT_DER_UTI
RESIDENT MAILS
GROUP BY F_IDT_CLIENT;
// Table finale
LEFT JOIN(CLIENTS)
LOAD *
RESIDENT MAILS;
DROP TABLE MAILS;
cordialement.
Excuse my english, i'm french!

Contributor II
2019-05-29
03:30 AM
Author
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
merci Seyko cela fonctionne
1,700 Views
