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 01/12/2006, 16h39   #1
Membre à l'essai
 
Inscription : décembre 2004
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 113
Points : 22
Points : 22
Par défaut BO 5.1.8 pb requete et @prompt

Bonjour,

J'ai un problème que je n'arrive pas à comprendre, SVP j'ai besoin d'aide!
J'ai créé un indicateur et un filtre dans mon univers (Designer 6.5.1), je fais l'analyse, c'est OK.
Je vais ensuite dans mon rapport (BO 5.1.8) et je crée une requete avec cet indicateur et ce filtre et quand je fais "Exécuter" : rien ne se passe, pas de message d'erreur mais mon requeteur ne se ferme pas!
J'ai regardé de plus près la requête SQL, ci dessous, et j'ai remarqué que si je coche la case "Ne pas exécuter le SQL", je ne peux plus fermer ma fenetre SQL car une erreur apparait :
ORA-01858: a non numeric character was found where a numeric was expected
Après plusieurs test j'ai conclu que le problème venait de ce que j'ai souligné en rouge! mais je ne comprend pas pourquoi il y a un problème car si je modifie en dur ce qui va aller à la place du @prompt, ça marche!!
Conclusion : je suis perdue!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
SELECT
  case @Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free)
when '01/2007'
then SUM(MOUVEMENTS.VALEUR)
when '02/2007'
then SUM(MOUVEMENTS.VALEUR)/2
when '03/2007'
then SUM(MOUVEMENTS.VALEUR)/3
when '04/2007'
then SUM(MOUVEMENTS.VALEUR)/4
when '05/2007'
then SUM(MOUVEMENTS.VALEUR)/5
when '06/2007'
then SUM(MOUVEMENTS.VALEUR)/6
when '07/2007'
then SUM(MOUVEMENTS.VALEUR)/7
when '08/2007'
then SUM(MOUVEMENTS.VALEUR)/8
when '09/2007'
then SUM(MOUVEMENTS.VALEUR)/9
when '10/2007'
then SUM(MOUVEMENTS.VALEUR)/10
when '11/2007'
then SUM(MOUVEMENTS.VALEUR)/11
when '12/2007'
then SUM(MOUVEMENTS.VALEUR)/12
else SUM(MOUVEMENTS.VALEUR)/12
end

FROM
  MOUVEMENTS,
  NATURE_MOUVEMENT
WHERE
  ( NATURE_MOUVEMENT.ID_NATURE_MVT=MOUVEMENTS.ID_NATURE_MVT  )
  AND  ( NATURE_MOUVEMENT.ID_NATURE_MVT=2   )
  AND  (
  ( TO_CHAR(MOUVEMENTS.DATE_MVT,'MM/YYYY') >= decode(substr(@Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free) ,4,4),'2006','01/2006', TO_CHAR(add_months(to_date(@Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free) ,'MM/YYYY'),-11), 'MM/YYYY'))
AND 
TO_CHAR(MOUVEMENTS.DATE_MVT,'MM/YYYY') <= @Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free) 

  )
  )
Un grand merci d'avance pour toute idée!
marion782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2006, 23h39   #2
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


Ma première question ?

As-tu fait un copier-coller de ta requête sous ton requêteur SQL préféré en remplacant @Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free)
par une valeur ?

Je te demande cela car je vois des espaces et cela me parait bizarre dans la requête


Frédéric
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2006, 04h39   #3
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Citation:
Envoyé par marion782
si je modifie en dur ce qui va aller à la place du @prompt, ça marche!!
Normalement oui mais bon, ça vaut toujours le coup d'essayer...
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 09h01   #4
Membre à l'essai
 
Inscription : décembre 2004
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 113
Points : 22
Points : 22
Oui j'ai testé ma requete en enlevant les @prompt et ça marche!
marion782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 10h31   #5
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Question bête mais ça vaut toujours le coup d'essayer : si tu es SURE que le problème vient de ce prompt, qu'il a une syntaxe correcte, est-ce que tu as essayé de rentrer ta valeur en rajoutant des ' ou des " de chaque côté ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 10h41   #6
Membre à l'essai
 
Inscription : décembre 2004
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 113
Points : 22
Points : 22
je pense que le problème est sur le @prompt mais peut être que ce n'est qu'une impression...
Oui, j'ai testé en modifiant directement le @prompt par '05/2006' dans le sql du rapport au niveau du SQL que je soupçonne de ne pas marcher et la ça marche! Par contre je ne peux pas tester dans l'invite lors de l'exécution de mon rapport car comme je le disais, je n'arrive pas à exécuter ma requete, j'ai beau cliquer sur "Exécuter" ou "Enregistrer et fermer", rien ne se passe...
marion782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 10h52   #7
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
Dans les tests, je testerais bien en simplifiant la requête, plus précisément en ne gardant que le prompt du CASE et en le supprimant dans la clause where toutes les parties de PROMPT afin d'isoler le problème...

De mon côté, j'ai testé

select decode(substr('05/2006',4,4),
'2006','01/2006',
TO_CHAR(add_months(to_date('01/2005' ,'MM/YYYY'),-11), 'MM/YYYY'))
from dual

et cela fonctionne.
frederic_s est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 11h43   #8
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Eventuellement essaye de créer un prompt par endroits où tu les utilises juste pour voir où ça coince.

En gros ça va donner ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
SELECT
  case @Prompt('1) Mois de calcul? (MM/AAAA)','A',,mono,free)
when '01/2007'
then SUM(MOUVEMENTS.VALEUR)
when '02/2007'
then SUM(MOUVEMENTS.VALEUR)/2
when '03/2007'
then SUM(MOUVEMENTS.VALEUR)/3
when '04/2007'
then SUM(MOUVEMENTS.VALEUR)/4
when '05/2007'
then SUM(MOUVEMENTS.VALEUR)/5
when '06/2007'
then SUM(MOUVEMENTS.VALEUR)/6
when '07/2007'
then SUM(MOUVEMENTS.VALEUR)/7
when '08/2007'
then SUM(MOUVEMENTS.VALEUR)/8
when '09/2007'
then SUM(MOUVEMENTS.VALEUR)/9
when '10/2007'
then SUM(MOUVEMENTS.VALEUR)/10
when '11/2007'
then SUM(MOUVEMENTS.VALEUR)/11
when '12/2007'
then SUM(MOUVEMENTS.VALEUR)/12
else SUM(MOUVEMENTS.VALEUR)/12
end
 
FROM
  MOUVEMENTS,
  NATURE_MOUVEMENT
WHERE
  ( NATURE_MOUVEMENT.ID_NATURE_MVT=MOUVEMENTS.ID_NATURE_MVT  )
  AND  ( NATURE_MOUVEMENT.ID_NATURE_MVT=2   )
  AND  (
  ( TO_CHAR(MOUVEMENTS.DATE_MVT,'MM/YYYY') >= decode(substr(@Prompt('2) Mois de calcul? (MM/AAAA)','A',,mono,free) ,4,4),'2006','01/2006', TO_CHAR(add_months(to_date(@Prompt('3) Mois de calcul? (MM/AAAA)','A',,mono,free) ,'MM/YYYY'),-11), 'MM/YYYY'))
AND 
TO_CHAR(MOUVEMENTS.DATE_MVT,'MM/YYYY') <= @Prompt('4) Mois de calcul? (MM/AAAA)','A',,mono,free) 
 
  )
  )
Ca devrait te demander 4 fois le mois et après en les désactivant un par un on va bien trouver où ça coince.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 12h11   #9
Membre à l'essai
 
Inscription : décembre 2004
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 113
Points : 22
Points : 22
Merci pour vos aides respectives. Après de multiples essais ce matin cela marche enfin mais j'ai refait ma condition différemment car je n'ai pas trouvé pourquoi ma permière version ne marchait pas.
Pou info voici ma nouvelle requete
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
SELECT
  case @Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free)
when '01/2006'
then SUM(MOUVEMENTS.VALEUR)
when '02/2006'
then SUM(MOUVEMENTS.VALEUR)/2
when '03/2006'
then SUM(MOUVEMENTS.VALEUR)/3
when '04/2006'
then SUM(MOUVEMENTS.VALEUR)/4
when '05/2006'
then SUM(MOUVEMENTS.VALEUR)/5
when '06/2006'
then SUM(MOUVEMENTS.VALEUR)/6
when '07/2006'
then SUM(MOUVEMENTS.VALEUR)/7
when '08/2006'
then SUM(MOUVEMENTS.VALEUR)/8
when '09/2006'
then SUM(MOUVEMENTS.VALEUR)/9
when '10/2006'
then SUM(MOUVEMENTS.VALEUR)/10
when '11/2006'
then SUM(MOUVEMENTS.VALEUR)/11
when '12/2006'
then SUM(MOUVEMENTS.VALEUR)/12
else SUM(MOUVEMENTS.VALEUR)/12
end
FROM
  MOUVEMENTS,
  NATURE_MOUVEMENT
WHERE
  ( NATURE_MOUVEMENT.ID_NATURE_MVT=MOUVEMENTS.ID_NATURE_MVT  )
  AND  ( NATURE_MOUVEMENT.ID_NATURE_MVT=2   )
  AND  (
  ( MOUVEMENTS.DATE_MVT <= add_months(to_date(@Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free), 'MM/YYYY'),+1)  
AND 
MOUVEMENTS.DATE_MVT >= decode(substr(@Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free),4,4),'2006',to_date('12/2005','MM/YYYY'),add_months(to_date(@Prompt('Mois de calcul? (MM/AAAA)','A',,mono,free),'MM/YYYY'),-11))  )
  )
Encore merci
marion782 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 15h07   #10
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Tu as remplacé quoi par quoi exactement ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h52.


 
 
 
 
Partenaires

Hébergement Web