Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Cognos
Cognos Forum d'entraide Cognos : Impromptu, Powerplay, transformer,...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/07/2011, 12h13   #1
Nouveau Membre du Club
 
Homme
Inscription : février 2009
Messages : 30
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : février 2009
Messages : 30
Points : 27
Points : 27
Par défaut Filtre Cognos Report Studio 8.4

Bonjour,

Dans Cognos 8.4 report studio (client web) j'ai deux invites de saisie de date de livraison dans la page de prompt : une date de début (paramètre db) et une date de fin (paramètre df)

En base cette date de livraison est une varchar sous la forme MM/AAAA.

Mon rapport doit uniquement afficher les lignes dont la date de livraison est comprise entre db et df.

Pour cela j'ai crée le filtre d'abord le filtre pour la date de début :
Code :
substring([BA].[BA].[Date de liv];4;7) >= substring(?db?;1;4) AND substring([BA].[BA].[Date de liv];1;2) >= substring(?db?;6;7)
Peu importe la date, cela ne me retourne aucune ligne alors que j'ai des données en base... J'ai sans doute une erreur dans mon filtre ...

Quelqu'un peut-il m'aider svp ?
__________________
Avant j'étais schizophrène, maintenant nous allons mieux !
drvercetti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 12h59   #2
Membre Expert
 
Avatar de Sunchaser
 
Homme Vincent
OPNI
Inscription : décembre 2004
Messages : 1 668
Détails du profil
Informations personnelles :
Nom : Homme Vincent
Âge : 41
Localisation : France, Manche (Basse Normandie)

Informations professionnelles :
Activité : OPNI
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : décembre 2004
Messages : 1 668
Points : 2 036
Points : 2 036
Bonjour,

Je dirais que je commencerais par - si je peut dire et sans aucune méchanceté de ma part - comparer des pommes avec des pommes, etc...
Donc je ferais en sorte d'avoir des champs date, la ou je veux travailler sur une date.
Il doit t'être possible a un moment donnée de créer un DataItem qui passe les données en varchar2 en date, d'un côté, et de l'autre de "caster" les valeurs renvoyées par les prompts pour avoir le même type de date.

@+
__________________
Citation:
Aux persévérants aucune route n'est interdite
Question: un ver a pied, c'est un millepatte unijambiste ?

Mon dernier trip musical

Citation:
Quiconque construit un jardin devient un allié de la lumière, aucun jardin n'étant jamais surgi des ténèbres
A priori un proverbe Perse ...
Sunchaser est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 10h11   #3
Invité de passage
 
Inscription : juin 2008
Messages : 11
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 11
Points : 4
Points : 4
Je suis d'accord avec Sunchaser, il serait plus simple de travailler avec des dates.
Pour passer d'une chaine de caractères à une date tu peux regarder du côté de la fonction _make_timestamp.
Blyver est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 08h34   #4
Invité régulier
 
Inscription : avril 2010
Messages : 16
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 16
Points : 9
Points : 9
Bonjour,
moi je lui dit de rapatrier toutes les données supérieures a la date de début et toutes celles inférieur à la date de fin et apres je fais l'intersection des deux :
calcul de la requete (à insérer dans ton tableau):intersect (deb;fin)
benidget est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 21h12   #5
Membre du Club
 
Jacques Vaill
Consultant en Business Intelligence
Inscription : septembre 2010
Messages : 45
Détails du profil
Informations personnelles :
Nom : Jacques Vaill
Localisation : Canada

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Service public

Informations forums :
Inscription : septembre 2010
Messages : 45
Points : 65
Points : 65
Bonjour,

Si la donné stockée dans la base,date de livraison, est en format varchar2, je commencerais par l'avoir en date toujours au dernier jour du mois
last_day(to_date(date_de_base,'YYYY-MM')) car le jour n'étant pas inclus il n'a donc aunce importance, sauf pour fin de simplicité dans la comparaison.

je ferais ensuite un between pour être plus simple

last_day(to_date(date_de_base,'YYYY-MM')) between ?db? and ?df?

Si les invite sont en date et que tu as des date de livraison qui corresponde aux critères, je ne vois pas pourquoi cela ne marcherais pas.

Merci
ElPoune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 10h44   #6
Membre du Club
 
Inscription : mars 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 105
Points : 52
Points : 52
Citation:
Envoyé par drvercetti Voir le message
Code :
substring([BA].[BA].[Date de liv];4;7) >= substring(?db?;1;4) AND substring([BA].[BA].[Date de liv];1;2) >= substring(?db?;6;7)
Prenons un exemple, tu veux les données depuis 06/2010. D'après ton filtre, tu n'auras que les données de 06/2010 à 12/2010 et de 06/2011 à aujourd'hui. Tu perdras les données de 01/2011 à 05/2011.

Je propose une correction de ton filtre:
Code :
substring([BA].[BA].[Date de liv];4;7) + substring([BA].[BA].[Date de liv];1;2) >= ?db?
hittony est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h16.


 
 
 
 
Partenaires

Hébergement Web