La requête JOIN permet de combiner des données de domaines différents en s’affranchissant des 3 conditions imposées par Analytics.
https://services.lib.uliege.be/alma/comment-combiner-deux-domaines-dans-une-analyse-statistique/
L’unique condition attachée à la requête JOIN est qu’au moins 1 colonne soit identique entre les différents domaines combinés, de préférence une donnée de type « identifiant unique » comme le MMS ID.
Ce point est abordé en détail dans le billet suivant : https://developers.exlibrisgroup.com/blog/using-join-in-analytics-to-combine-data-from-two-subject-areas/
La requête JOIN prend la forme suivante :
SELECT
query_fields
FROM (first_query) A
LEFT OUTER JOIN (second_query) B
ON A.linking_field = B.linking_field
Les first et second query peuvent être obtenues en créant d’abord un rapport dans chaque domaine respectif.
On veillera à n’ajouter que les données et les filtres nécessaires. Les données ne doivent pas se répéter entre les domaines sauf celle qui servira pour les linking fields.
Mettons qu’on souhaite afficher le nombre de prêts et le nombre de requests pour les collections de Géo-Sciences.
Je créé un premier rapport dans le domaine « Fulfillment ». Je demande à afficher 3 colonnes et j’ajoute 1 filtre.

Je me rends ensuite dans l’onglet « Advanced » et je copie-colle le « SQL Issued » jusqu’à la mention ORDER BY (non inclus).
SELECT
0 s_0,
« Fulfillment ». »Bibliographic Details ». »MMS Id » s_1,
« Fulfillment ». »Bibliographic Details ». »Title » s_2,
« Fulfillment ». »Loan ». »Loans (Not In House) » s_3
FROM « Fulfillment »
WHERE
(« Item Location at Time of Loan ». »Library Name » = ‘Géosciences’)
Cette requête me servira de First query. Je peux fermer le rapport sans l’enregistrer.
Puis je créé un second rapport dans le domaine « Request ». J’ajoute la colonne qui me manquait dans l’autre domaine et je reprend la colonne MMS Id qui me permettra de faire le lien entre les domaines.

Je me rends ensuite dans l’onglet « Advancef » et je copie le « SQL Issued » jusqu’à la mention ORDER BY (non inclus).
SELECT
0 s_0,
« Requests ». »Bibliographic Details ». »MMS Id » s_1,
« Requests ». »Request Measures ». »# of requests » s_2
FROM « Requests »
Cette requête me servira de Second query. Je peux désormais remplacer « first_query » et « second_query » dans ma requête.
SELECT
query_fields
FROM (SELECT
0 s_0,
« Fulfillment ». »Bibliographic Details ». »MMS Id » s_1,
« Fulfillment ». »Bibliographic Details ». »Title » s_2,
« Fulfillment ». »Loan ». »Loans (Not In House) » s_3
FROM « Fulfillment »
WHERE
(« Item Location at Time of Loan ». »Library Name » = ‘Géosciences’)
) A
LEFT OUTER JOIN (SELECT
0 s_0,
« Requests ». »Bibliographic Details ». »MMS Id » s_1,
« Requests ». »Request Measures ». »# of requests » s_2
FROM « Requests »
) B
ON A.linking_field = B.linking_field
Il me reste ensuite à préciser les linking fields, ici le MMS Id donc => « A.s_1 » et « B.s_1 ».
SELECT
query_fields
FROM (SELECT
0 s_0,
« Fulfillment ». »Bibliographic Details ». »MMS Id » s_1,
« Fulfillment ». »Bibliographic Details ». »Title » s_2,
« Fulfillment ». »Loan ». »Loans (Not In House) » s_3
FROM « Fulfillment »
WHERE
(« Item Location at Time of Loan ». »Library Name » = ‘Géosciences’)
) A
LEFT OUTER JOIN (SELECT
0 s_0,
« Requests ». »Bibliographic Details ». »MMS Id » s_1,
« Requests ». »Request Measures ». »# of requests » s_2
FROM « Requests »
) B
ON A.s_1 = B.s_1
Enfin, en début de requête, il me reste à compléter les « query_fields » soit la liste des champs qu’on souhaite afficher dans notre rapport final parmi ceux ajoutés dans les deux rapports. Ici nous reprenons tous les champs du premier rapport et seulement le second champ du deuxième rapport (pour ne pas répéter le MMS Id à l’affichage).
Cette partie prend la forme suivante :
A.s_1 intitulé,
A.s_2 intitulé,
A.s_3 intitulé,
B.s_2 intitulé
L’intitulé peut être défini arbitrairement. Les intitulés doivent être en minuscules et sans espaces. Attention de terminer sans virgule après le dernier intitulé. Ex :
SELECT
A.s_1 mms_id,
A.s_2 title,
A.s_3 loans,
B.s_2 requests
FROM (SELECT
0 s_0,
« Fulfillment ». »Bibliographic Details ». »MMS Id » s_1,
« Fulfillment ». »Bibliographic Details ». »Title » s_2,
« Fulfillment ». »Loan ». »Loans (Not In House) » s_3
FROM « Fulfillment »
WHERE
(« Item Location at Time of Loan ». »Library Name » = ‘Géosciences’)
) A
LEFT OUTER JOIN (SELECT
0 s_0,
« Requests ». »Bibliographic Details ». »MMS Id » s_1,
« Requests ». »Request Measures ». »# of requests » s_2
FROM « Requests »
) B
ON A.s_1 = B.s_1
Ensuite, je créé un rapport (peu importe le domaine), je vais dans « Advanced », sous « SQL Issued », je clique sur ‘New Analysis ».

Je copie-colle la formule :

Je valide avec « OK » et j’obtiens le résultat suivant.

Le rapport est limité au niveau de son édition (pas d’ajout de champ, de filtres, etc). On peut toutefois réorganiser et renommer les différentes colonnes.
On peut aussi choisir de renommer les colonnes via la requête en remplaçant les intitulés dans la requête par les intitulés souhaités entre guillemets. Il faut alors penser à répéter ces mêmes intitulés dans les first et second query et dans les linking fields.
SELECT
A. »MMS Id »,
A. »Title »,
A. »Loans »,
B. »# of requests »
FROM (SELECT
0 s_0,
« Fulfillment ». »Bibliographic Details ». »MMS Id » « MMS Id »,
« Fulfillment ». »Bibliographic Details ». »Title » « Title »,
« Fulfillment ». »Loan ». »Loans (Not In House) » « Loans »
FROM « Fulfillment »
WHERE
(« Item Location at Time of Loan ». »Library Name » = ‘Géosciences’)
) A
LEFT OUTER JOIN (SELECT
0 s_0,
« Requests ». »Bibliographic Details ». »MMS Id » s_1,
« Requests ». »Request Measures ». »# of requests » « # of requests »
FROM « Requests »
) B
ON A.« MMS Id » = B.s_1
J’obtiens alors le résultat suivant :
