Filtrage de données à l'aide de sous-requêtes. SAP Rich Client
4.12.3 Filtrage de données à l'aide de sous-requêtes
4.12.3.1 Définition des sous-requêtes
Une sous-requête est un type de filtre de requête plus souple qui permet de restreindre des valeurs de façon plus performante qu'avec un filtre de requête ordinaire.
Les sous-requêtes sont plus puissantes que les filtres de requête ordinaires pour les raisons suivantes :
● Elles permettent de comparer les valeurs de l'objet dont les valeurs sont utilisées pour restreindre la requête avec les valeurs d'autres objets.
● Elles permettent de restreindre les valeurs renvoyées par la sous-requête à l'aide d'une clause WHERE.
● Elles permettent de poser des questions complexes qui sont difficiles, voire impossibles, à formuler avec les filtres de requête simples. Par exemple : quelle est la liste des clients et de leur revenu dans laquelle un client a acheté un service qui avait été réservé (par n'importe quel client) au premier trimestre (T1) 2003 ?
Les sous-requêtes modifient le SQL généré pour extraire les données de requête. Le SQL contient une sousrequête qui restreint les données renvoyées par une requête externe. SQL est le langage de requête pris en charge par toutes les bases de données relationnelles (SGBDR), bien que chaque base de données ait sa propre syntaxe. Pour en savoir plus sur les sous-requêtes SQL, consultez n'importe quel manuel traitant de SQL.
Remarque
Toutes les sous-requêtes ne sont pas prises en charge dans les bases de données. Si elles ne sont pas prises en charge, l'option pour créer des sous-requêtes n'apparaît pas dans l'Editeur de requête.
Remarque
Vous pouvez créer des sous-requêtes uniquement à l'aide de dimensions, d'attributs et d'indicateurs. Vous ne pouvez pas créer de sous-requêtes à l'aide d'objets hiérarchiques.
Informations associées
[page 143]
[page 145]
4.12.3.2 Pour créer une sous-requête
1. Ajoutez au volet
Objets du résultat
les objets à afficher dans la requête.
2. Dans le volet
Objets du résultat
, sélectionnez l'objet à filtrer avec une sous-requête et cliquez sur
Ajouter une sous-requête
en haut à droite du volet
Filtres de la requête
.
Le plan de la sous-requête s'affiche dans le volet
Filtres de la requête
. Par défaut, l'objet sélectionné apparaît comme objet de type Filtre et Filtrer par.
3. Pour ajouter une condition WHERE à la sous-requête, faites glisser un objet de rapport vers la zone de la sousrequête, au-dessous des zones Déposer un objet ici.
Guide de l'utilisateur de SAP BusinessObjects Web Intelligence Rich Client
Création de requêtes
©
2014 SAP AG ou société affiliée SAP. Tous droits réservés.
143
4. Pour ajouter une condition WHERE à la sous-requête, faites glisser un objet de rapport vers la zone de la sousrequête, en dessous des zones
Déposer un objet ici
.
Vous pouvez utiliser une sous-requête existante ou un filtre de requête standard comme condition WHERE dans une sous-requête. Pour ce faire, faites glisser le filtre existant ou la sous-requête vers la zone de la sousrequête, en dessous des zones Déposez un objet ici. Pour copier le filtre existant (au lieu de le déplacer) vers la condition WHERE, maintenez la touche CTRL enfoncée pendant l'opération de glisser-déposer. Dans ce cas, le filtre existant conserve sa place initiale et devient un élément de la condition WHERE de la sousrequête.
5. Sélectionnez l'opérateur et les valeurs utilisés pour filtrer l'objet dans la condition WHERE.
6. Cliquez sur
Sous-requête
pour ajouter une sous-requête au filtre de requête.
Vous pouvez lier des sous-requêtes par des relations AND ou OR, mais également les imbriquer (créer des sous-requêtes dans des sous-requêtes) en faisant glisser une sous-requête existante vers la zone qui se trouve sous les zones
Déposer un objet ici
. Dans ce cas, la sous-requête interne devient un élément de la condition WHERE de la sous-requête externe. Pour copier la sous-requête (au lieu de la déplacer) vers la condition WHERE, maintenez la touche CTRL enfoncée pendant l'opération de glisser-déposer. Dans ce cas, la deuxième sous-requête reste au même niveau que la première et devient un élément de la clause WHERE de celle-ci.
Par défaut, les deux sous-requêtes sont liées par une relation de type AND. Cliquez sur l'opérateur AND pour basculer entre AND et OR.
7. Pour imbriquer une sous-requête (c'est-à-dire créer une sous-requête au sein d'une sous-requête), faites glisser une sous-requête au-dessous des zones
Déposer un objet ici
.
Pour copier la sous-requête (au lieu de la déplacer) vers la condition WHERE, maintenez la touche CTRL enfoncée pendant l'opération de glisser-déposer. Dans ce cas, la deuxième sous-requête reste au même niveau que la première et devient un élément de la clause WHERE de celle-ci.
La sous-requête interne devient un élément de la condition WHERE de la sous-requête externe.
Informations associées
4.12.3.3 Pour déterminer les clients qui ont acheté un service réservé au premier trimestre (T1) 2003 ainsi que le chiffre d'affaires généré
L'Editeur de requête est ouvert.
1. Faites glisser les objets Client et Revenu vers le volet Objets du résultat de l'Editeur de requête.
2. Sélectionnez l'objet Service.
3. Cliquez sur
Sous-requête
.
Le plan de la sous-requête s'affiche dans le volet Filtres de la requête.
144
©
2014 SAP AG ou société affiliée SAP. Tous droits réservés.
Guide de l'utilisateur de SAP BusinessObjects Web Intelligence Rich Client
Création de requêtes
Remarque
L'objet sélectionné apparaît dans les deux zones du plan de la sous-requête. Le même objet est souvent utilisé dans les deux zones, bien que cela ne soit pas requis. Si les objets ne renvoient pas de valeurs communes, la sous-requête ne renvoie aucune valeur et la requête ne renvoie donc aucune valeur non plus.
4. Faites glisser l'objet Année de réservation dans la zone de plan de la sous-requête sous les objets Service pour ajouter une condition WHERE à l'objet Année de réservation.
5. Définissez l'opérateur conditionnel de l'objet Année de réservation à Egal à.
6. Saisissez "FY2003" dans la zone
Saisissez une constante
.
7. Faites glisser l'objet Trimestre de réservation dans la zone de plan de la sous-requête sous les objets Service pour ajouter l'objet Trimestre de réservation à la condition WHERE.
8. Définissez l'opérateur conditionnel de l'objet Trimestre de réservation à Egal à.
9. Saisissez "Q1" dans la zone
Saisissez une constante
.
10. Cliquez sur
Exécuter
pour lancer la requête.
4.12.3.4 Paramètres de sous-requête
Une sous-requête ou un ensemble de sous-requêtes contient les paramètres suivants :
Paramètre
Objet(s) de type Filtre
Description
Objet dont les valeurs sont utilisées pour filtrer les ob jets du résultat.
Vous pouvez inclure plusieurs objets de type Filtre. De cette manière, les valeurs des objets sélectionnés sont concaténées.
Objet(s) de type Filtrer par
Objet déterminant les valeurs de l'objet de type Filtre renvoyées par la sous-requête.
Vous pouvez inclure plusieurs objets de type Filtrer par. De cette manière, les valeurs des objets sélection nés sont concaténées.
Opérateur
Opérateur spécifiant la relation entre l'objet de type Fil tre et l'objet de type Filtrer par.
Les restrictions de la base de données empêchent l'uti lisation de certaines combinaisons entre les opérateurs et les objets de type Filtre. Par exemple, si vous utilisez l'opérateur Egal à avec un objet de type Filtrer par qui renvoie plusieurs valeurs, la base de données rejette le code SQL, car ce type de sous-requête requiert l'objet
Filtrer par pour ne renvoyer qu'une seule valeur.
Guide de l'utilisateur de SAP BusinessObjects Web Intelligence Rich Client
Création de requêtes
©
2014 SAP AG ou société affiliée SAP. Tous droits réservés.
145

Public link updated
The public link to your chat has been updated.