Options de mise en relation. SAP 2013 Support Package 1
Bases de données
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.
23.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
570 2013-09-26
Bases de données
• 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 [!=]
23.5.10.1 Jointure interne
53
57
58
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
ID client Nom du client Montant commande
52
53
Allez Distribution
BG Mountain Inc.
25 141,50
19 164,30
BG Mountain Inc.
Hansen MTB Inc.
La Bomba de Bicicleta
1 683,60
15 716,40
1 956,20
571 2013-09-26
Bases de données
63
64
62
63
Table Clients
ID client
60
Table Clients
Nom du client
Mountain Toad
SFB Inc.
Sierra Bicycle Group
Sierra Bicycle Group
Sierra Mountain
Table Commandes
Montant commande
24 580,50
7 911,80
19 766,20
12 763,95
8 233,50
23.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
Nom du client
Allez Distribution
Montant commande
25 141,50
53
53
BG Mountain Inc.
BG Mountain Inc.
19 164,30
1 683,60
572 2013-09-26
Bases de données
63
64
62
63
54
55
58
60
Table Clients
ID client
57
Table Clients
Nom du client
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
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.
573
23.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
2013-09-26
Bases de données
63
64
62
63
58
60
53
57 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.
Table Clients Table Commandes Table Commandes
ID client ID commande Montant commande
52
53
6
11
25 141,50
19 164,30
21
4
20
16
1 683,60
15 716,40
1 956,20
24 580,50
32
14
19
28
25
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
574 2013-09-26
Bases de données
575 données. Pour en savoir plus, voir la documentation ODBC de Microsoft ou celle de votre base de données SQL.
23.5.10.4 Jointure externe complète
62
63
63
58
60
53
57
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.
Table Clients Table Commandes Table Commandes
ID client ID commande Montant commande
52
53
6
11
25 141,50
19 164,30
21
4
20
16
1 683,60
15 716,40
1 956,20
24 580,50
19
28
32
7 911,80
19 766,20
12 763,95
2013-09-26
Bases de données
65
66
Table Clients
ID client
64
Table Commandes
ID commande
14
Table Commandes
Montant commande
8 233,50
25 10 320,87
23.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.
23.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.
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
.
576 2013-09-26
Bases de données
23.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
.
23.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é.
23.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 :
577 2013-09-26
Bases de données
63
63
64
60
62
57
58
53
53
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
23.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.
578 2013-09-26
Bases de données
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 Table Directeur Table Directeur
Nom Salaire Nom Salaire
Davolio 35 000,00 $ Fuller 32 000,00 $
Davolio
Davolio
35 000,00 $
35 000,00 $
Brid
Buchanan
30 000,00 $
29 500,00 $
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Patterson
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
30 000,00 $
Hellstern
Fuller
Brid
Buchanan
Martin
Buchanan
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.
579 2013-09-26
Bases de données
580
23.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 Table Vendeur Table Directeur Table Directeur
Nom Salaire Nom Salaire
Davolio 35 000,00 $ Fuller 32 000,00 $
Davolio
Davolio
35 000,00 $
35 000,00 $
Brid
Buchanan
30 000,00 $
29 500,00 $
Davolio
Dodsworth
Dodsworth
Dodsworth
Dodsworth
Dodsworth
35 000,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
48 300,00 $
Martin
Hellstern
Fuller
Brid
Buchanan
Martin
35 000,00 $
45 000,00 $
32 000,00 $
30 000,00 $
29 500,00 $
35 000,00 $
2013-09-26
Bases de données
Table Vendeur
Nom
Patterson
Patterson
Table Vendeur
Salaire
30 000,00 $
30 000,00 $
Table Directeur
Nom
Brid
Buchanan
Table Directeur
Salaire
30 000,00 $
29 500,00 $
23.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 Salaire Nom Salaire
Fuller
Fuller
Brid
32 000,00 $
32 000,00 $
30 000,00 $
Davolio
Dodsworth
Davolio
35 000,00 $
48 300,00 $
35 000,00 $
581 2013-09-26
Bases de données
Table Directeur
Nom
Brid
Buchanan
Buchanan
Buchanan
Martin
Hellstern
Table Directeur
Salaire
30 000,00 $
29 500,00 $
29 500,00 $
29 500,00 $
35 000,00 $
45 000,00 $
Table Vendeur
Nom
Dodsworth
Davolio
Dodsworth
Patterson
Dodsworth
Dodsworth
Table Vendeur
Salaire
48 300,00 $
35 000,00 $
48 300,00 $
30 000,00 $
48 300,00 $
48 300,00 $
582
23.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 Table Directeur Table Vendeur Table Vendeur
Nom Salaire Nom Salaire
Fuller 32 000,00 $ Davolio 35 000,00 $
2013-09-26
Bases de données
Table Directeur
Nom
Fuller
Brid
Brid
Brid
Buchanan
Buchanan
Buchanan
Martin
Martin
Hellstern
Table Directeur
Salaire
32 000,00 $
30 000,00 $
30 000,00 $
30 000,00 $
29 500,00 $
29 500,00 $
29 500,00 $
35 000,00 $
35 000,00 $
45 000,00 $
Table Vendeur
Nom
Dodsworth
Davolio
Dodsworth
Patterson
Davolio
Dodsworth
Patterson
Davolio
Dodsworth
Dodsworth
Table Vendeur
Salaire
48 300,00 $
35 000,00 $
48 300,00 $
30 000,00 $
35 000,00 $
48 300,00 $
30 000,00 $
35 000,00 $
48 300,00 $
48 300,00 $
583
23.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
2013-09-26
Bases de données
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 Product2
Nom du produit Nom du produit
Casque Xtreme pour adulte
Casque Xtreme pour adulte
Antivol Xtreme Mtn
Gants InFlux en lycra
Casque Xtreme pour adulte
Antivol Xtreme Mtn
Antivol Xtreme Mtn
Antivol Xtreme Mtn
Selle Roadster Micro Mtn
Casque Xtreme pour adulte
Gants InFlux en lycra
Selle Roadster Micro Mtn
Gants InFlux en lycra
Gants InFlux en lycra
Gants InFlux en lycra
Selle Roadster Micro Mtn
Selle Roadster Micro Mtn
Selle Roadster Micro Mtn
Casque Xtreme pour adulte
Antivol Xtreme Mtn
Selle Roadster Micro Mtn
Casque Xtreme pour adulte
Antivol Xtreme Mtn
Gants InFlux en lycra
584 2013-09-26

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