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 09/05/2007, 16h14   #1
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Par défaut [BO 6.5] Sélection en fonction d'un nombre d'occurrences

Bonjour,

J'ai une durée d'absence par agent et par date.
Je cherche à récupérer les agents ayant au moins deux lignes d'absence d'une durée supérieure à 10 jours ?

Si quelqu'un avait une piste ?

Merci.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 16h59   #2
Membre du Club
 
Inscription : avril 2007
Messages : 159
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 159
Points : 63
Points : 63
Salut,

Je pense que tu devrais créer une dimension du genre :

ta_dimension=Somme(<durée_d'absence>>10)

Puis dans les conditions de ta requête :

ta_dimension Supérieur ou égal à "2"


Mais je ne suis absolument pas certain du fonctionnement de mon idée ^^

byrdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 17h04   #3
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Re,

Merci pour la réponse, mais je me suis sans doute mal exprimé.

En fait, je veux récupérer chaque ligne d'absence pour les agents ayant au moins deux lignes d'absence d'une durée supérieure à 10 jours.

Exemple :

Agent 1
du 01/01/2007 au 04/01/2007 = 4 jours
du 01/03/2007 au 31/03/2007 = 31 jours
du 01/04/2007 au 04/04/2007 = 4 jours

Agent 2
du 01/01/2007 au 04/01/2007 = 4 jours
du 01/03/2007 au 31/03/2007 = 31 jours
du 01/04/2007 au 12/04/2007 = 12 jours

Je cherche à récupérer les occurrences de Agent 2 qui a au moins deux lignes d'une durée supérieure à 10 jours.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 17h26   #4
Membre du Club
 
Inscription : avril 2007
Messages : 159
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 159
Points : 63
Points : 63
D'accord, je pensais que tu disposais déjà de la durée d'absence.

Aparemment, tu n'as que 2 dates, et tu cherches d'abord à calculer la durée, puis ensuite appliquer le traîtement que tu as expliqué, c'est bien ça?
byrdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 08h07   #5
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Re,

Non, j'ai bien pour chaque agent une date de début, une date de fin et une durée.

J'arrive bien à afficher un rapport comme dans l'exemple que j'ai donné.
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 09h33   #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
Salut

Je pourrais te proposer de créer un objet dimension qui pointerait sur une fonction à laquelle tu passerais le nom de l'agent, et la période (si tu dois avoir cela en filtre).
Ensuite cette fonction te ramènera VRAI ou FAUX.

Enfin, tu crées une invite:

Where "Plus de 2 absences" = 'OUI' ou la valeur que tu souhaites


En espérant avoir apporté un peu de l'eau à ton moulin


Frédéric
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 09h56   #7
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Re,

Merci de vos réponses.

En fait, pour les familiers du SQL, il me faut l'équivallent de :

Code :
1
2
 
SELECT .....WHERE duree > 10 GROUP BY Agent HAVING count(duree) > 2
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 10h26   #8
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

Je ne crois pas, de mémoire, que tu puisses utiliser ce genre de requête pour créer une dimension.
Par contre, une fonction est tout à fait faisable.


Frédéric_S
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 11h03   #9
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Citation:
Envoyé par frederic_s
Salut

Je ne crois pas, de mémoire, que tu puisses utiliser ce genre de requête pour créer une dimension.
Par contre, une fonction est tout à fait faisable.


Frédéric_S
Tu peux développer stp ?

PS : Je ne suis pas pro de BO
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 12h44   #10
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

Tu crées une fonction qui sera:


F_Calcule_Double_absence ( Agent en entrée)

DoubleAbsence varchar2(3) := 'NON';

BEGIN

SELECT DECODE( count(duree), NULL, 'NON', 'OUI')
INTO DoubleAbsence
WHERE duree > 10
GROUP BY Agent
HAVING count(duree) > 2;

RETURN DoubleAbsence;
END;


Ensuite sous le DESIGNER, tu crées un objet dimension:

<Double Absence> en Alphanumérique
Dans la partie SELECT tu mets:
F_Calcule_Double_absence( Agent)
en pointant sur la bonne table

Enfin,
1. soit tu crées un filtre sous le DESIGNER ( si tu dois l'utiliser sur plusieurs rapports)
<Double Absence OUI>
avec comme code:
<Double Absence> = 'OUI'

2. soit tu crées un filtre dans le fournisseur de données de ton rapport:
<Double Absence> = "OUI"


J'espère que tu as compris mes explications...


Frédéric
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 12h55   #11
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Re,

Merci, mais le GROS problème est que je n'ai pas accès au DESIGNER !
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 13h12   #12
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

Désolé, comme ce n'était pas indiqué au début, difficile de le savoir

Je pense que tu ne peux pas aussi modifier le SQL dans le fournisseur de données.

Dans ce cas, il faut ruser . Alors une piste (mais n'ayant pas B.O. sous la main, il faudra que tu fasses des tests)

Il te faut une dimension (dans B.O. Reporter)

Dim <Nombre Absence 10 jours>
Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent

Il faudrait que tu connaisses le contexte de calcul de la durée d'absence dans ton tableau.
Pour cela Menu Données, il me semble, et "Transformer en variable", puis tu sélectionnes "Evaluer dans son contexte".

Tu récupéres cela dans un notepad pour voir ce qui est noté et te permettra de connaître le contexte.

Ensuite créer un filtre sur le Général avec <Nombre Absence 10 jours> > 2 (ne sélectionnes pas mais va dans Définir.

J'espère m'être fait comprendre. J'espère que d'autres pourront regarder sur B.O. et te redonner les informations plus précises


Frédéric
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h36   #13
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Re,

Bien vu, mais je dois faire (ou pas) un truc qui ne convient pas, car quand je saisis le formule :

Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent

Il me transforme automatiquement ma variable en indicateur et non en dimension. Je ne peux donc pas filtrer dessus ensuite.

Une idée ?
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 16h27   #14
Membre du Club
 
Inscription : avril 2007
Messages : 159
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 159
Points : 63
Points : 63
Salut,

Essaie :

EnNombre(Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent)

Ca contournera peut-être le problème du changement dela dimension à l'indicateur).
byrdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h10   #15
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Citation:
Envoyé par byrdo
Salut,

Essaie :

EnNombre(Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent)

Ca contournera peut-être le problème du changement dela dimension à l'indicateur).
Erreur de syntaxe !
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h22   #16
Membre du Club
 
Inscription : avril 2007
Messages : 159
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 159
Points : 63
Points : 63
Je vais essayer de voir le problème plus en profondeur.
byrdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 18h13   #17
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
Il me semble que tu peux filtrer sur une INFORMATION. Vérifies ?

Pas besoin de lui indiquer une dimension sur l'onglet de nommage en bas à droite.


Sinon, une autre piste provient de la façon de tourner tes éléments pour le transformer en dimension. J'avais déjà effectuer des tests dans ce sens.

Code :
EnNombre(Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent)
doit devenir:

Code :
1
2
3
=Si ( Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent)) >= 2 
   Alors "OUI" 
   Sinon "NON"
Et dans ce cas, tu filtres sur ta condition = "OUI"


Frédéric
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 08h24   #18
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Citation:
Envoyé par frederic_s
Code :
1
2
3
=Si ( Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent)) >= 2 
   Alors "OUI" 
   Sinon "NON"
Et dans ce cas, tu filtres sur ta condition = "OUI"

Frédéric
Erreur de syntaxe, et il me met en ça surbrillance (en rouge)
Code :
1
2
3
4
=Si ( Nombre( Durée Absence) Où Durée Absence >= 10 PourChaque Agent)) >= 2 
   Alors "OUI" 
   Sinon "NON"
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 09h31   #19
Membre du Club
 
Inscription : avril 2007
Messages : 159
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 159
Points : 63
Points : 63
De toute manière, quoiqu'il arrive il y avait une erreur dans les parenthèses si tu regardes bien.
byrdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2007, 09h39   #20
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

Tu as raison Byrdo, mais en écrivant vite et en faisant 10 choses à la fois, cela est excusable.

PC75, c'est normal, l'erreur puisque je n'ai pas mis les "<" et ">", si tu n'avais pas corrigé de toi-même.



Approfondis mais je pense que tu dois arriver à trouver. Sinon avances par étape en mettant uniquement la durée de l'absence puis uniquement PourChaque <Agent>


Frederic_s
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 03h26.


 
 
 
 
Partenaires

Hébergement Web