La fonction Datedim ne renvoie pas la date d'hier webi

Ma fonction Datedim ne renvoie pas la date d'hier dans webi, des idées sur la façon d'afficher le 13/04/2022, même si elle a des valeurs nulles ?

Merci

entrez la description de l'image ici


Solution du problème

Si vous avez des lacunes dans vos données de date, la façon la plus simple de les combler est de créer une variable avec la fonction TimeDim(). Cependant, cela ne fonctionnera pas pour vous puisque vous n'avez pas de véritable écart car votre date manquante est à la fin.

Vous avez besoin d'une source de données avec toutes les dates que vous souhaitez afficher, que vous disposiez ou non de données pour ces dates, puis fusionnez sur votre dimension de date. J'ai répondu à une question très similaire à celle- ci ici. Je copie ma réponse à partir de là ci-dessous...

La fonction TimeDim() remplira les périodes vides dans vos données de temps. Le problème avec cela est que si c'est la fin de votre plage de dates qui manque de données, ces dates ne s'afficheront pas. Laissez-moi vous montrer ce que je veux dire. Voici mes exemples de données du 01/12/2021 au 26/12/2021 (notez les dates manquantes) dans le tableau de gauche. Le tableau de droite est la variable my Var Data Date TimeDim définie comme…

=TimeDim([Data Date]; DayPeriod)

Données manquantes

Nous avons donc nos dates manquantes au milieu, mais pas à la fin (25/12/2021 et 26/12/2021). Pour obtenir ces dates, vous avez besoin d'une requête pour renvoyer toutes les dates de votre plage spécifiée. Si vous avez un univers basé sur un calendrier,
vous pouvez l'utiliser. SQL à la carte basé sur une table de calendrier suffirait également.

Si vous n'avez ni l'un ni l'autre, nous pouvons toujours le faire fonctionner en utilisant SQL à la carte avec un CTE. Il s'agit de la syntaxe SQL Server. Vous devrez modifier ce SQL pour qu'il fonctionne avec la plate-forme de base de données dont vous disposez s'il ne s'agit pas de SQL Server.

Voici le SQL...

;with dates ([Date]) as (
Select convert(date,'2021-12-01') as [Date] – Put the start date here
union all
Select dateadd(day, 1, [Date])
from dates
where [Date] < '2021-12-26' – Put the end date here
)
select [Date]
from dates
option (maxrecursion 32767) – Don't forget to use the maxrecursion option!

Source: générer une table de dates via Common Table Expression (CTE) | Données et analyses avec Dustin Ryan

Voici une
démo.

Maintenant que vous avez une requête renvoyant toutes les dates de votre plage, vous pouvez fusionner la date de cette requête avec votre Data Date.

Vous pouvez ensuite mettre l'objet date avec toutes les dates ou la date de fusion dans le tableau avec toutes les mesures de votre requête préexistante et voilà.

Données manquantes 2

Si vous avez besoin d'ajouter des dimensions à partir de votre requête préexistante, je pense que vous devrez créer des variables pour elles avec Qualification définie sur "Détail" et la dimension associée définie sur "Date de fusion" (ou quel que soit le nom que vous lui avez donné). Et si vous faites cela, je pense que vous devrez également cocher la case "Éviter l'agrégation de lignes en double" dans les propriétés du tableau de format.

Données manquantes 3

Tiens nous au courant de comment ça se passe.

J'espère que cela vous mettra sur la bonne voie.

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"