2014-05-10 4 views
0

PostPosted: mai 2014 22:26 09 de Sujet du message: Déterminer table en fonction rapide
Bonjour,table basée sur l'invite

J'ai trois tables de faits. La première table contient les données actuelles, FACT_CUSTOMER_CURRENT. Les deux autres tables contiennent des instantanés historiques. Par exemple, l'une de ces tables contient les enregistrements des 60 derniers jours - FACT_CUSTOMER_DAILY. L'autre table contient des données pour le dernier jour des mois.-FACT_CUSTOMER_MONTHLY

Je souhaite ajouter une invite de date. Si l'utilisateur sélectionne hier comme valeur d'invite, le rapport doit apporter une valeur à partir de la première table contenant les données actuelles (FACT_CUSTOMER_CURRENT). Si l'utilisateur entre le 28.02.2014, le rapport doit récupérer les données de FACT_CUSTOMER_MONTHLY. J'ai essayé d'utiliser le contexte et la connaissance globale, mais je ne pouvais pas réussir. Pouvez-vous m'aider?

Amitiés

Répondre

0

Il n'y a pas directe, moyen facile de faire ce que vous voulez. La prise de conscience d'agrégation est utile pour sélectionner une table en fonction de la sélection d'objets dans une requête, mais elle ne prend pas en charge la sélection dynamique de tables en fonction des valeurs d'une invite.

Si les données d'hier existent seulement, vous pouvez utiliser cette méthode: Dans votre rapport, créez une requête UNION. Une requête inclut des objets de fact_customer_current et l'autre de fact_customer_monthly. Ils ont tous les deux une invite identique dans le champ de date approprié. Lorsqu'un utilisateur entre la date d'hier, la première requête UNION renverra des données mais pas la seconde. De même pour la date d'avant hier, la première UNION ne renverra aucune donnée mais la seconde le fera. Cette solution nécessite que les tables soient correctement indexées afin qu'une requête sur une date qui ne figure pas dans la table revienne rapidement.

Questions connexes