Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
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 17/04/2007, 12h04   #1
Invité de passage
 
Inscription : avril 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 7
Points : 1
Points : 1
Par défaut Recuperer une valeur sur j-1

Hello hello

J'ai un tableau avec différentes valeurs, le maître du rapport étant la date au format jj/mm/aa. J'obtiens donc mes tableaux par jour toussa, bref, vous voyez le truc.

Maintenant, pour chaque tableau, je dois rajouter une colonne 'ancienneté'. Pour chacune des lignes des tableaux, j'ai une sorte de "clé primaire". Je dois ainsi regarder si une ligne d'un tableau n'était pas déjà présente la veille, et si c'est le cas, récupérer l'ancienneté de cette ligne et faire +1. Autrement, l'ancienneté vaut 0 (et l'ancienneté de toutes les lignes du premier tableau vaudra ainsi 0).

Exemple :

01/04/2007
ID - Desc - Ancienneté
1 - aaa - 0
2 - bbb - 0
3 - ccc - 0


02/04/2007
1 - aaa - 1
2 - bbb - 1
4 - ddd - 0

03/04/2007
2 - bbb - 2
0 - ccc - 0

04/04/2007
1 - aaa - 0
2 - bbb - 3
0 - ccc - 1

Donc : quelle formule appliquer dans la colonne "Ancienneté" ? Ai-je besoin de créer une dimension/une information ?

Merci d'avance !
arnaud.barre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 13h04   #2
Nouveau Membre du Club
 
Inscription : février 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 34
Points : 33
Points : 33
Bonjour

Peut la fonction précédent
bon courage
jean marie
pendulaire est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 14h24   #3
Invité de passage
 
Inscription : avril 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 7
Points : 1
Points : 1
Hmmm.. précédent, ca semble être pour récupérer la case précédente, mais dans le même tableau.

Moi, ce dont j'ai besoin, c'est de voir si
1/ l'id était présent dans le tableau du jour précédent
2/ récupérer l'ancienneté de cet Id + 1

Et d'autre part, d'avoir une formule =If... quelque chose (enfin je suppose), qui fasse que :
1/ Lors du premier jour, ancienneté=0
2/ Si Id n'appartient pas au tableau à j-1, ancienneté=0
3/ Si Id appartient au tableau à j-1, ancienneté=ancienneté(j-1) + 1
arnaud.barre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 13h35   #4
Membre habitué
 
Inscription : mars 2006
Messages : 111
Détails du profil
Informations personnelles :
Âge : 49
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 111
Points : 116
Points : 116
Salut

Il y aurait une possibilité en créant une fonction sous PL/SQL ou TRANSACT/SQL auquel tu passes une date et un ID.
Dans ta fonction, tu recherches le même ID pour la date J-1

Ensuite, tu fais appel à cette fonction dans un nouvel objet de format numérique:

Ancienneté

SELECT F_CALCULE_ANCIENNETE ( date, ID)

Sans B.O. je ne vois que cela


En espérant t'avoir aidé



Frédéric_S
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 10h58   #5
Invité de passage
 
Inscription : avril 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 7
Points : 1
Points : 1
Bah, le truc, c'est que l'ancienneté est calculée dans le rapport, dynamiquement. Ce que tu me proposes, ca va permettre juste de voir si l'id était déjà présent la veille, et donc de mettre "1" dans la case, mais il faudrait en plus que je recupere la valeur de la case ancienneté de la veille, et que je fasse +1 dessus...

Si je trouve un id 10 jours de suite, j'ai besoin qu'il ait au 11eme jour une ancienneté de 10. Enfin, peut-être que je me trompe, en tout cas je comprends pas comment je peux y arriver avec ta méthode ?

Je me demandais par contre si c'était pas jouable avec un ptit bout de code en VBA... qui va chercher dans la veille le champ ancienneté pour un id, sinon qui met 0 dans la colonne

Je mets en annexe le fichier xls que donne pour le moment le document DeskI.
Colonne Id = <Id>
Colonne Note Moy. = <Note Moy.> (indicateur)
Colonne Ancienneté = que dalle

Edit : après reflexion je vais essayer de faire mon truc "à la main", disons de creer une table calque de la mienne, et d'automatiser les calculs d'une maniere ou d'une autre (à peu de choses près).
Cependant, je reste ouverte à toute solution... c'est toujours intéressant de savoir les différentes manières de faire.
Fichiers attachés
Type de fichier : zip test.zip (3,0 Ko, 0 affichages)
arnaud.barre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 15h18   #6
Membre habitué
 
Inscription : mars 2006
Messages : 111
Détails du profil
Informations personnelles :
Âge : 49
Localisation : France

Informations forums :
Inscription : mars 2006
Messages : 111
Points : 116
Points : 116
Bonjour

Je suis d'accord avec toi mais il faudrait voir pour mettre un Somme( <objet_fonction>).
Par contre, n'ayant pas B.O., je ne sais pas comment il réagirait.

Normalement, la fonction incrémenterait uniquement si le jour précédent, on a le même id.


C'est à tester et à murir.


Frédéric
frederic_s 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 06h15.


 
 
 
 
Partenaires

Hébergement Web