Calcul de valeurs à l'aide d'indicateurs intelligents
6
Indicateurs intelligents et périmètre d'analyse
[Revenu]. Lorsque vous actualisez les données, Web Intelligence est en mesure de remplacer #TOREFRESH par les valeurs de revenu.
Si vous replacez ensuite la dimension [Ville] dans le bloc, le regroupement
(Pays, Région) n'est plus nécessaire. Web Intelligence le supprime donc du
SQL de la requête et ignore ses valeurs la prochaine fois que vous actualisez les données.
Chaque fois que vous actualisez les données du rapport, Web Intelligence met à jour le SQL de la requête pour inclure ou ignorer les regroupements en fonction des contextes de calcul requis par le rapport.
Dans certains cas, Web Intelligence ne peut pas afficher la valeur d'un indicateur intelligent. Dans ce cas, Web Intelligence affiche l'erreur
#INDISPONIBLE dans les cellules de l'indicateur.
Indicateurs intelligents et périmètre d'analyse
Lorsque vous créez une requête avec un périmètre d'analyse, Web
Intelligence génère un regroupement initial qui contient les objets du résultat, mais pas les objets du périmètre. Web intelligence ne génère pas tous les regroupements possibles résultant de la combinaison des objets du résultat et des objets du périmètre.
Exemple : Requête avec un périmètre d'analyse et un indicateur intelligent
Une requête a les objets du résultat [Pays] et [Revenu]. Le périmètre d'analyse contient les dimensions [Région] et [Ville]. Lorsque vous exécutez la requête, Web Intelligence extrait le regroupement (Pays) et affiche [Pays] et [Revenu] dans un bloc.
Indicateurs intelligents et SQL
Regroupements et opérateur UNION
Certaines bases de données prennent en charge les regroupements d'ensembles de façon explicite avec l'opérateur
GROUPING SETS
.
228 Utilisation de fonctions, formules et calculs dans Web Intelligence
Calcul de valeurs à l'aide d'indicateurs intelligents
Indicateurs intelligents et SQL
6
Web Intelligence utilise plusieurs jeux de résultats et l'opérateur
UNION pour simuler l'effet de
GROUPING SETS
.
Exemple : Regroupements extraits avec l'opérateur UNION
Cet exemple décrit une requête contenant les dimensions [Pays], [Région],
[Ville] et l'indicateur intelligent [Revenu].
Remarque :
Pour plus de simplicité, l'indicateur intelligent calcule une somme. Dans la pratique, aucun indicateur intelligent n'est nécessaire pour cette agrégation car les univers Web Intelligence prennent en charge la fonction
Somme
.
Lorsque la requête est exécutée pour la première fois, le regroupement est
(Pays, Région, Ville). La requête SQL complète renvoie ce regroupement et l'opérateur
UNION n'est absolument pas nécessaire dans le SQL.
Si vous supprimez la dimension [Ville] de la table, Web Intelligence a besoin du regroupement (Pays, Région) pour afficher le revenu (qui apparaît en tant qu'erreur #TOREFRESH). Après l'actualisation des données, le SQL se présente comme suit :
SELECT
SELECT
0 AS GID, country.country_name, region.region_name,
NULL, sum(city.revenue)
FROM country, region, city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name, region.region_name
UNION
SELECT
1 AS GID, country.country_name, region.region_name, city.city_name, sum(city.revenue)
FROM country, region,
Utilisation de fonctions, formules et calculs dans Web Intelligence 229
Calcul de valeurs à l'aide d'indicateurs intelligents
6
Indicateurs intelligents et SQL
city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name, region.region_name, city.city_name
Chaque regroupement est représenté par une instruction
SELECT et a son propre ID (dans la colonne GID). Les regroupements qui ne contiennent pas l'ensemble de dimensions intégral incluent des colonnes vides (
SELECT
''
) car chaque instruction
SELECT d'une requête incluant l'opérateur
UNION doit avoir le même nombre de colonnes.
Si vous ajoutez au rapport un nouveau bloc contenant [Pays] et [Revenu],
Web Intelligence a besoin du regroupement (Pays). Le SQL généré inclut maintenant les trois regroupements suivants :
SELECT
0 AS GID, country.country_name, region.region_name,
NULL, sum(city.revenue)
FROM country, region, city
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY country.country_name, region.region_name
UNION
SELECT
1 AS GID, country.country_name,
NULL,
NULL, sum(city.revenue)
FROM country, city, region
WHERE
( country.country_id=region.country_id
)
AND ( region.region_id=city.region_id
)
GROUP BY
230 Utilisation de fonctions, formules et calculs dans Web Intelligence

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