Dans ce cas, les liens seront traités en premier entre les tables Crédits/Clients, puis entre les tables Clients/
Commandes et enfin entre les tables Commandes/Détails des commandes. La boîte de dialogue Ordonner les liens vous indique cet ordre par défaut et vous permet de modifier les positions dans la hiérarchie de traitement selon vos besoins.
Remarque
L'utilisation d'ordres de traitement des liens différents peut conduire au renvoi de jeux de données différents.
En outre, l'ordre des liens a des effets importants sur les performances.
24.5.10 Options de mise en relation
Crystal Reports vous permet d'indiquer le type de jointure et le type de lien à utiliser lors de la mise en relation de tables. Vous pouvez également imposer l'utilisation de tables dans vos jointures. Les jointures et les liens précisent les modalités de la comparaison entre les champs reliés de deux tables lors de la lecture des enregistrements. Utilisez la boîte de dialogue Options de mise en relation pour spécifier les options de jointure, d'application et de mise en relation. L'utilisation des diverses options d'application de jointures permet de s'assurer que les tables reliées sont incluses dans la requête SQL, même si aucun des champs de la table n'est utilisé dans le rapport.
Remarque
Si vous utilisez des jointures, vous n'avez pas besoin de champ indexé.
Les différents types de jointure sont les suivants :
● Jointure interne
● Jointure externe gauche
● Jointure externe droite
● Jointure externe complète
Les différentes options de jointure applicables sont les suivantes :
● Non appliquée
● Appliquée depuis
● Appliquée vers
● Appliquée des deux façons
Les types de lien sont les suivants :
● Lien Egal à [=]
● Lien Supérieur à [>]
● Lien Supérieur ou égal à [>=]
● Lien Inférieur à [<]
● Lien Inférieur ou égal à [<=]
● Différent de [!=]
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
537
24.5.10.1 Jointure interne
63
63
64
Une jointure interne est le type de jointure standard. Les résultats obtenus avec cette jointure incluent tous les enregistrements dont les valeurs du champ relié dans les deux tables correspondent exactement. Par exemple, vous pouvez utiliser une jointure interne pour visualiser tous les clients et les commandes qu'ils ont passées. Vous n'obtiendrez pas de correspondance pour les clients qui n'ont pas passé de commande.
Table Clients Table Clients Table Commandes
53
57
58
ID client
52
53
60
62
Nom du client
Allez Distribution
BG Mountain Inc.
BG Mountain Inc.
Hansen MTB Inc.
La Bomba de Bicicleta
Mountain Toad
SFB Inc.
Sierra Bicycle Group
Sierra Bicycle Group
Sierra Mountain
Montant commande
25 141,50
19 164,30
1 683,60
15 716,40
1 956,20
24 580,50
7 911,80
19 766,20
12 763,95
8 233,50
24.5.10.2 Jointure externe gauche
Les résultats obtenus d'une jointure externe gauche incluent tous les enregistrements dont les valeurs du champ relié dans les deux tables correspondent exactement. Ils incluent également une ligne pour chaque enregistrement dans la table principale (gauche) dont la valeur du champ relié n'a aucune correspondance dans la table de recherche. Par exemple, vous pouvez utiliser une jointure externe gauche pour visualiser tous les clients et les commandes qu'ils ont passées, mais vous recevez également une ligne pour chaque client qui n'a passé aucune commande. Ces clients apparaissent à la fin de la liste avec des espaces vides au lieu de détails concernant leurs commandes.
Table Clients Table Clients Table Commandes
ID client
52
53
Nom du client
Allez Distribution
BG Mountain Inc.
Montant commande
25 141,50
19 164,30
538
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
62
63
63
57
58
60
64
54
55
Table Clients
ID client
53
Table Clients
Nom du client
BG Mountain Inc.
Hansen MTB Inc.
La Bomba de Bicicleta
Mountain Toad
SFB Inc.
Sierra Bicycle Group
Sierra Bicycle Group
Sierra Mountain
Bicicletas Aztecas
Deely MTB Inc.
Table Commandes
Montant commande
1 683,60
15 716,40
1 956,20
24 580,50
7 911,80
19 766,20
12 763,95
8 233,50
Remarque
En langage SQL, les jointures externes gauches et externes droites sont traitées différemment des autres jointures. Si vous accédez à la base de données par l'intermédiaire d'ODBC, Crystal Reports utilise la syntaxe
ODBC dans l'instruction SQL. Lorsque vous vous connectez directement à une base de données SQL (sans passer par ODBC),Crystal Reports utilise la syntaxe native de cette base de données. Pour en savoir plus, voir la documentation ODBC de Microsoft ou celle de votre base de données SQL.
24.5.10.3 Jointure externe droite
Les résultats obtenus avec cette jointure incluent tous les enregistrements dont les valeurs du champ relié dans les deux tables correspondent exactement. Ils incluent également une ligne pour chaque enregistrement de la table de recherche (droite) dont la valeur du champ relié n'a pas pu être trouvée dans la table principale. Lorsque vous reliez la table Clients à la table Commandes, des lignes sont ajoutées en fonction des commandes passées par un client. Vous obtenez également des lignes spécifiques pour toutes les commandes trouvées qui ne peuvent pas être reliées à un client. Cette situation est théoriquement impossible, mais la méthode permet par exemple de repérer rapidement les commandes enregistrées par un vendeur inexpérimenté ayant oublié de saisir l'ID client.
Dans les tables résultantes, en effet, un espace vide remplace le champ Client dans toutes les commandes ne précisant pas le nom du client.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
539
58
60
62
53
53
57
63
63
64
Table Clients
ID client
52
20
16
19
11
21
4
28
32
14
25
Table Commandes
ID commande
6
Table Commandes
Montant commande
25 141,50
19 164,30
1 683,60
15 716,40
1 956,20
24 580,50
7 911,80
19 766,20
12 763,95
8 233,50
10 320,87
Remarque
En langage SQL, les jointures externes gauches et externes droites sont traitées différemment des autres jointures. Si vous accédez à la base de données par l'intermédiaire d'ODBC, Crystal Reports utilise la syntaxe
ODBC dans l'instruction SQL. Lorsque vous vous connectez directement à une base de données SQL (sans passer par ODBC), Crystal Reports utilise la syntaxe native de cette base de données. Pour en savoir plus, voir la documentation ODBC de Microsoft ou celle de votre base de données SQL.
24.5.10.4 Jointure externe complète
Une jointure externe complète est une jointure externe bidirectionnelle qui vous permet de voir tous les enregistrements contenus dans vos tables reliées. Les résultats obtenus d'une jointure externe complète incluent tous les enregistrements dont les valeurs du champ relié dans les deux tables correspondent exactement. Elle inclut également une ligne pour chaque enregistrement de la table principale (gauche) pour laquelle la valeur du champ relié n'a pas de correspondance dans la table de recherche et une ligne pour chaque enregistrement de la table de recherche (droite) pour laquelle la valeur du champ relié n'a pas de correspondance dans la table principale. Lorsque vous reliez la table Clients à la table Commandes, des lignes sont ajoutées en fonction des commandes passées par un client. Une ligne est également ajoutée pour chaque commande trouvée qui n'a pu
être reliée à un client et une ligne pour chaque client pour lequel aucune commande n'a été trouvée.
540
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
58
60
62
53
53
57
63
63
64
65
66
Table Clients
ID client
52
20
16
19
11
21
4
28
32
14
Table Commandes
ID commande
6
Table Commandes
Montant commande
25 141,50
19 164,30
1 683,60
15 716,40
1 956,20
24 580,50
7 911,80
19 766,20
12 763,95
8 233,50
25 10 320,87
24.5.10.5 Non appliquée
Lorsque vous sélectionnez cette option, le lien que vous avez créé n'est utilisé que s'il est explicitement requis par l'instruction Select. Vos utilisateurs peuvent créer des rapports basés sur les tables sélectionnées sans aucune restriction (c'est-à-dire sans qu'aucune autre table ne soit imposée). Il s'agit de l'option par défaut.
24.5.10.6 Appliquée depuis
Lorsque vous sélectionnez cette option, si la table Vers de la mise en relation est utilisée, le lien est appliqué. Par exemple, si vous créez un lien de la table A vers la table B en utilisant Appliquée depuis et que vous sélectionnez un seul champ de la table B, l'instruction Select continuera d'inclure la jointure à la table A car elle est appliquée.
Inversement, le fait de sélectionner uniquement de la table A avec la même condition de jointure n'entraîne pas l'application de la jointure à la table B.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
541
Remarque
Pour en savoir plus sur les tables de départ et d'arrivée, voir
Mise en relation de et mise en relation vers
[page
527].
24.5.10.7 Appliquée vers
Lorsque vous sélectionnez cette option, si la table de départ de la mise en relation est utilisée, le lien est appliqué.
Par exemple, si vous créez un lien de la table A vers la table B en utilisant Appliquée vers et que vous sélectionnez uniquement un champ de la table A, la jointure à la table B sera appliquée et l'instruction Select générée inclura les deux tables.
Remarque
Pour en savoir plus sur les tables de départ et d'arrivée, voir
Mise en relation de et mise en relation vers
[page
527].
24.5.10.8 Appliquée des deux façons
Lorsque vous sélectionnez cette option, si la table de départ ou la table d'arrivée de la mise en relation est utilisée, le lien est appliqué.
24.5.10.9 Lien Egal à [=]
Les résultats obtenus avec cette mise en relation incluent tous les enregistrements dont les valeurs du champ relié dans les deux tables correspondent exactement. Dans l'exemple suivant, la table Clients est reliée à la table
Commandes par l'intermédiaire du champ ID client. Lorsque le logiciel trouve dans la table Commandes un ID client qui coïncide avec celui de la table Clients, il affiche le contenu des enregistrements concernés des deux tables.
Pour décrire une mise en relation Egal à, SQL utilise la syntaxe suivante :
SELECT Customer.'Customer ID',
Customer.'Customer Name',
Orders.'Order Amount'
FROM 'Customer' Customer,
'Orders' Orders
WHERE Customer.Customer ID =
Orders.Customer ID
Cette instruction génère les données suivantes :
542
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
58
60
62
53
53
57
63
63
64
Table Clients
ID client
52
Table Clients
Nom du client
Allez Distribution
BG Mountain Inc.
BG Mountain Inc.
Hansen MTB Inc.
La Bomba de Bicicleta
Mountain Toad
SFB Inc.
Sierra Bicycle Group
Sierra Bicycle Group
Sierra Mountain
Table Commandes
Montant commande
25 141,50
19 164,30
1 683,60
15 716,40
1 956,20
24 580,50
7 911,80
19 766,20
12 763,95
8 233,50
24.5.10.10 Lien Supérieur à [>]
Les résultats obtenus avec cette mise en relation incluent tous les enregistrements dont la valeur du champ relié de la table principale est strictement supérieure à celle du même champ dans la table de recherche. Ils permettent par exemple de comparer les salaires des vendeurs à ceux des directeurs des ventes. Les dirigeants de l'entreprise veulent s'assurer qu'aucun vendeur n'est mieux payé que son directeur.
Pour s'en tenir à cet exemple, il suffirait de relier la table Vendeur à la table Directeur, par l'intermédiaire de leur champ Salaire à l'aide d'une mise en relation Supérieur à :
SELECT SalesRep.'Last Name',
SalesRep.'Salary',
Manager.'Last Name',
Manager.'Salary'
FROM 'SalesRep' SalesRep,
'Manager' Manager
WHERE SalesRep.'Salary' >
Manager.'Salary'
Cette instruction SQL génère les données suivantes :
Table Vendeur Table Vendeur
Nom
Davolio
Salaire
35 000,00 $
Table Directeur
Nom
Fuller
Table Directeur
Salaire
32 000,00 $
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
543
Table Vendeur
Nom
Davolio
Davolio
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Patterson
Table Vendeur
Salaire
35 000,00 $
35 000,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
30 000,00 $
Table Directeur
Nom
Brid
Buchanan
Hellstern
Fuller
Brid
Buchanan
Martin
Buchanan
Table Directeur
Salaire
30 000,00 $
29 500,00 $
45 000,00 $
32 000,00 $
30 000,00 $
29 500,00 $
35 000,00 $
29 500,00 $
Dans cette table, aucune relation n'a pu être établie entre les vendeurs et les directeurs des ventes. Ces derniers ayant tous une ancienneté supérieure à celle des vendeurs, il est utile - lors d'une réévaluation de la politique salariale de l'entreprise - de vérifier que leur rémunération est également plus élevée.
24.5.10.11 Lien Supérieur ou égal à [>=]
Les résultats obtenus avec cette mise en relation incluent tous les enregistrements dont la valeur du champ relié de la table principale est supérieure ou égale à celle du même champ dans la table de recherche. L'instruction donnée ici en exemple est pratiquement identique à celle de la jointure Supérieur à, excepté qu'elle utilise le lien
Supérieur ou égal à :
SELECT SalesRep.'Last Name',
SalesRep.'Salary',
Manager.'Last Name',
Manager.'Salary'
FROM 'SalesRep' SalesRep,
'Manager' Manager
WHERE SalesRep.'Salary' >=
Manager.'Salary'
Cette instruction génère les données suivantes :
Table Vendeur
Nom
Davolio
Davolio
Table Vendeur
Salaire
35 000,00 $
35 000,00 $
Table Directeur
Nom
Fuller
Brid
Table Directeur
Salaire
32 000,00 $
30 000,00 $
544
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
Table Vendeur
Nom
Davolio
Davolio
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Patterson
Patterson
Table Vendeur
Salaire
35 000,00 $
35 000,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
30 000,00 $
30 000,00 $
Table Directeur
Nom
Buchanan
Martin
Hellstern
Fuller
Brid
Buchanan
Martin
Brid
Buchanan
Table Directeur
Salaire
29 500,00 $
35 000,00 $
45 000,00 $
32 000,00 $
30 000,00 $
29 500,00 $
35 000,00 $
30 000,00 $
29 500,00 $
24.5.10.12 Lien Inférieur à [<]
Les résultats obtenus avec cette mise en relation incluent tous les enregistrements dont la valeur du champ relié de la table principale est strictement inférieure à celle du même champ dans la table de recherche. A l'aide du lien
Inférieur à, vous pouvez vérifier qu'aucun salaire de vendeur n'est supérieur à un salaire de directeur des ventes.
Le champ Salaire est utilisé de nouveau pour effectuer la mise en relation. Cette fois-ci, cependant, la mise en relation se fait de la table Directeur vers la table Vendeur en utilisant une mise en relation Inférieur à sur les champs Salaire reliés :
SELECT Manager.'Last Name',
Manager.'Salary',
SalesRep.'Last Name',
SalesRep.'Salary'
FROM 'Manager' Manager,
'SalesRep' SalesRep
WHERE Manager.'Salary' <
SalesRep.'Salary'
Cette instruction SQL génère une table légèrement différente de celle obtenue avec la mise en relation Supérieur
à :
Table Directeur Table Directeur Table Vendeur Table Vendeur
Nom
Fuller
Fuller
Salaire
32 000,00 $
32 000,00 $
Nom
Davolio
Dodsworth
Salaire
35 000,00 $
48 300,00 $
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
545
Table Directeur
Nom
Brid
Brid
Buchanan
Buchanan
Buchanan
Martin
Hellstern
Table Directeur
Salaire
30 000,00 $
30 000,00 $
29 500,00 $
29 500,00 $
29 500,00 $
35 000,00 $
45 000,00 $
Table Vendeur
Nom
Davolio
Dodsworth
Davolio
Dodsworth
Patterson
Dodsworth
Dodsworth
Table Vendeur
Salaire
35 000,00 $
48 300,00 $
35 000,00 $
48 300,00 $
30 000,00 $
48 300,00 $
48 300,00 $
24.5.10.13 Lien Inférieur ou égal à [<=]
Les résultats obtenus avec cette mise en relation incluent tous les enregistrements dont la valeur du champ relié de la table principale est inférieure ou égale à celle du même champ dans la table de recherche. L'instruction donnée ici en exemple est pratiquement identique à celle de la mise en relation Inférieur à, excepté qu'elle utilise la mise en relation Inférieur ou égal à :
SELECT Manager.'Last Name',
Manager.'Salary',
SalesRep.'Last Name',
SalesRep.'Salary'
FROM 'Manager' Manager,
'SalesRep' SalesRep
WHERE Manager.'Salary' <=
SalesRep.'Salary'
Cette instruction génère les données suivantes :
Table Directeur
Nom
Fuller
Fuller
Brid
Brid
Brid
Buchanan
Table Directeur
Salaire
32 000,00 $
32 000,00 $
30 000,00 $
30 000,00 $
30 000,00 $
29 500,00 $
Table Vendeur
Nom
Davolio
Dodsworth
Davolio
Dodsworth
Patterson
Davolio
Table Vendeur
Salaire
35 000,00 $
48 300,00 $
35 000,00 $
48 300,00 $
30 000,00 $
35 000,00 $
546
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
Table Directeur
Nom
Buchanan
Buchanan
Martin
Martin
Hellstern
Table Directeur
Salaire
29 500,00 $
29 500,00 $
35 000,00 $
35 000,00 $
45 000,00 $
Table Vendeur
Nom
Dodsworth
Patterson
Davolio
Dodsworth
Dodsworth
Table Vendeur
Salaire
48 300,00 $
30 000,00 $
35 000,00 $
48 300,00 $
48 300,00 $
24.5.10.14 Différent de [!=]
Les résultats obtenus avec cette mise en relation incluent tous les enregistrements dont la valeur du champ relié de la table principale est différente de celle du même champ dans la table de recherche. Cette mise en relation permet de trouver toutes les combinaisons d'éléments possibles dans une table jointe à elle-même. Par exemple, une société peut disposer d'une table énumérant tous ses produits. Lorsqu'elle décide d'organiser une promotion offrant au client de bénéficier d'une réduction de 50 % sur le second article, elle doit établir une liste de l'ensemble des combinaisons d'articles possibles :
SELECT Product1.'Product Name',
Product2.'Product Name',
FROM 'Product' Product1
'Product' Product2
WHERE Product1.'Product Name' !=
Product2.'Product Name'
Cette instruction SQL ouvre deux fois la table Produits. La première fois, elle reçoit l'alias Product1. La deuxième fois, elle reçoit l'alias Product2. Ensuite, le champ Nom du produit est utilisé pour relier la table Product1 à la table
Product2. Il s'agit de la même table, mais dans la mesure où elle a été ouverte deux fois sous des alias différents,
Crystal Reports considère qu'il s'agit de deux tables distinctes. Une mise en relation Différent de relie les deux tables par l'intermédiaire de leur champ Nom du produit. Par conséquent, chaque produit est successivement relié à tous les autres produits mais jamais avec lui-même :
Product1
Nom du produit
Casque Xtreme pour adulte
Casque Xtreme pour adulte
Casque Xtreme pour adulte
Antivol Xtreme Mtn
Antivol Xtreme Mtn
Product2
Nom du produit
Antivol Xtreme Mtn
Gants InFlux en lycra
Selle Roadster Micro Mtn
Casque Xtreme pour adulte
Gants InFlux en lycra
Guide de l'utilisateur de SAP Crystal Reports 2011
Bases de données
©
2013 SAP AG ou société affiliée SAP. Tous droits réservés.
547

公開リンクが更新されました
あなたのチャットの公開リンクが更新されました。