IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

[BO 5.1.6] : probleme commande prompt dans SQL à la carte

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut [BO 5.1.6] : probleme commande prompt dans SQL à la carte
    Bonjour,

    Je galère depuis plus d'une heure sur une erreur dans un SQL à la carte.
    Voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Select @variable('Date VL souhaitée (format JJ/MM/AAAA) :') "Date de VL souhaitee",
    @variable('Type d''offre à fenêtre souhaité (plusieurs choix possibles) :') "Type d'offre à fenêtre",
    t2.cport "Portefeuille", 
    t3.cval "Valeur", 
    t1.dtvali "Date de valeur liquidative", 
    t1.stockuc_a "Stock UC Actif en nb de parts", 
    t1.stockuc_p "Stock UC Passif en nb de parts", 
    t1.aruc "Avance-Retard en UC-nb parts", 
    t1.vln "Valeur Liquidative Nette en €", 
    t1.cmttgp "Cumul Gains-Pertes en €", 
    (t1.stockuc_a*t1.vln) "Actif valorise en €",
    (t1.stockuc_p*t1.vln) "Passif valorise en €",
    ((t1.stockuc_a*t1.vln)-(t1.stockuc_p*t1.vln)) "Sur-sous Invest. en €",
    100*DECODE((t1.stockuc_p*t1.vln),0,0,(((t1.stockuc_a*t1.vln)-(t1.stockuc_p*t1.vln))/(t1.stockuc_p*t1.vln))) "Sur-sous Invest. en %",
    t1.dti "Date d'integration"
    from GAINPERTE t1, portgfm t2, regroupcval t3,  valgfm t5
    where t1.id_port = t2.id_port 
    and t1.id_regroupcval = t3.id_regroupcval 
    and t3.cval = t5.cval
    and (t1.stockuc_p <> 0 OR t1.stockuc_a <> 0 or t1.varuc_a <>0 or t1.varuc_p <>0 )
    and t1.dtvali = (SELECT max(t4.dtvali) from GAINPERTE t4 where
    t4.id_port = t1.id_port and t4.id_regroupcval = t1.id_regroupcval and t4.dtvali <= @prompt('Date VL souhaitée (format JJ/MM/AAAA) :','A',,mono,free))
    and (t5.oaf IN @prompt('Type d''offre à fenêtre souhaité (plusieurs choix possibles) :', 'A',{'PERM','OAT','OAF','ACTION'},multi,CONSTRAINED))
    order by t2.cport, t3.cval
    Losque je l'exécute et que je choisi seulement un choix dans le deuxième prompt, je n'ai aps d'erreur, c'est quand j'essaie d'en choisir plusieurs que là il tombe en erreur "Parenthèse de droite absente"

    J'ai essayé de bouger mes parenthèse mais rien n'y fait j'ai toujours cette erreur.

    Pourriez-vous m'aider à trouver cette erreur, étant complètement novice sur BO, j'ai besoin d'aide.

    Merci d'avance,

  2. #2
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Bonjour,

    Essaies de retirer les parenthèses dans le titre de ton @prompt. Et utilises la commande @prompt plutôt que @variable dans ton select.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Ca ne fonctionne toujours pas.
    De plus si j'essaie de remplace les @variables par @prompt il me dit que j'ai une erreur de syntaxe...

  4. #4
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    OK, alors oublies le coup du SELECT.
    Dans le WHERE, essaies de rajouter des parenthèses entourant ton @prompt. Donc avant @prompt et après CONSTRAINED.
    Car si tu remplaces le @prompt par une valeur, ça donne par exemple :
    Et avec plusieurs valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (t5.oaf IN 'PERM','OAT')
    Alors qu'il faudrait plutôt que ça ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AND (t5.oaf IN ('PERM','OAT'))

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Voici ce que j'ai maitenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Select @variable('Date VL souhaitée (format JJ/MM/AAAA) :') "Date de VL souhaitee",
    @variable('Type d''offre à fenêtre souhaité (plusieurs choix possibles) :') "Type d'offre à fenêtre",
    t2.cport "Portefeuille", 
    t3.cval "Valeur", 
    t1.dtvali "Date de valeur liquidative", 
    t1.stockuc_a "Stock UC Actif en nb de parts", 
    t1.stockuc_p "Stock UC Passif en nb de parts", 
    t1.aruc "Avance-Retard en UC-nb parts", 
    t1.vln "Valeur Liquidative Nette en €", 
    t1.cmttgp "Cumul Gains-Pertes en €", 
    (t1.stockuc_a*t1.vln) "Actif valorise en €",
    (t1.stockuc_p*t1.vln) "Passif valorise en €",
    ((t1.stockuc_a*t1.vln)-(t1.stockuc_p*t1.vln)) "Sur-sous Invest. en €",
    100*DECODE((t1.stockuc_p*t1.vln),0,0,(((t1.stockuc_a*t1.vln)-(t1.stockuc_p*t1.vln))/(t1.stockuc_p*t1.vln))) "Sur-sous Invest. en %",
    t1.dti "Date d'integration"
    from GAINPERTE t1, portgfm t2, regroupcval t3,  valgfm t5
    where ( t1.id_port = t2.id_port )
    and ( t1.id_regroupcval = t3.id_regroupcval )
    and ( t3.cval = t5.cval )
    and ( t1.stockuc_p <> 0 OR t1.stockuc_a <> 0 or t1.varuc_a <>0 or t1.varuc_p <>0 )
    and ( t1.dtvali = (SELECT max(t4.dtvali) from GAINPERTE t4 where
    t4.id_port = t1.id_port and t4.id_regroupcval = t1.id_regroupcval and t4.dtvali <= @prompt('Date VL souhaitée (format JJ/MM/AAAA) :','A',,mono,free)) )
    and ( t5.oaf IN (@prompt('Type d''offre à fenêtre souhaité (plusieurs choix possibles) :', 'A',{'PERM','OAT','OAF','ACTION'},multi,CONSTRAINED)) )
    order by t2.cport, t3.cval
    Ca ne fonctionne toujours pas. En revanche, une chose étrange, c'est dans l'invite lorsque j'ai sélectionné deux valeurs il me met çà :
    Ce n'est pas une virgule entre les deux, est-ce normal?

  6. #6
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Oui c'est normal. Dans BO le séparateur est ";". Par contre ce qui me surprends c'est que les valeurs ne soient pas entre quotes... Peux tu me reposter uniquement ton WHERE, je n'ai pas les scrollbars sur mon tel.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Alors j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    where ( t1.id_port = t2.id_port )
    and ( t1.id_regroupcval = t3.id_regroupcval )
    and ( t3.cval = t5.cval )
    and ( t1.stockuc_p <> 0 OR t1.stockuc_a <> 0 or t1.varuc_a <>0 or t1.varuc_p <>0 )
    and ( t1.dtvali = (SELECT max(t4.dtvali) from GAINPERTE t4 where
    t4.id_port = t1.id_port and t4.id_regroupcval = t1.id_regroupcval and t4.dtvali <= @prompt('Date VL souhaitée (format JJ/MM/AAAA) :','A',,mono,free)) )
    and ( t5.oaf IN (@prompt('Type d''offre à fenêtre souhaité (plusieurs choix possibles) :', 'A',{'PERM','OAT','OAF','ACTION'},multi,CONSTRAINED)) )

  8. #8
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Test idiot, si tu remplaces ton (@prompt) par ('OAT';'ACTION') est ce que ça fonctionne ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Je ne suis plus au boulot mais j'ai remplacé çà avant de partir (j'y ai pensé aussi). Donc j'ai essayé et MIRACLE!!! Ca me donne exactement la même erreur .

    Je n'arrive pas a comprendre...

  10. #10
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Essaies quand même quand tu pourras de remplacer ton (@prompt) par ('OAT' ,'ACTION') histoire de voir...

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Alors j'ai testé ce que tu m'as dis. Et voici ce que çà donne :

    Lorsque je lance la requête avec ('OAT','PERM') ca ne renvoie pas d'erreur si je supprime la variable dans le select.

    Il y a un problème dans ce prompt mais je ne vois pas quoi.

    Merci de ton aide.

  12. #12
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Essaies déjà de remplacer le titre de ton @prompt et de ta @variable du coup, pour un truc simple style "toto". Ne serait-ce que pour écarter les problèmes de quotes, de parenthèses, de nombre de caractères, etc...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Alors j'ai remplacé mon titre par un truc simple mais j'ai toujours cette erreur...

  14. #14
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Si tu retires tes deux @variable su SELECT ainsi que ta condition sur "Date VL", as-tu toujours l'erreur ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Alors voici ma requête maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Select t2.cport "Portefeuille",                                                                                                                             
    t3.cval "Valeur",                                                                                                                                    
    t1.dtvali "Date de valeur liquidative",                                                                                                              
    t1.stockuc_a "Stock UC Actif en nb de parts",                                                                                                        
    t1.stockuc_p "Stock UC Passif en nb de parts",                                                                                                       
    t1.aruc "Avance-Retard en UC-nb parts",                                                                                                              
    t1.vln "Valeur Liquidative Nette en €",                                                                                                              
    t1.cmttgp "Cumul Gains-Pertes en €",                                                                                                                 
    (t1.stockuc_a*t1.vln) "Actif valorise en €",                                                                                                         
    (t1.stockuc_p*t1.vln) "Passif valorise en €",                                                                                                        
    ((t1.stockuc_a*t1.vln)-(t1.stockuc_p*t1.vln)) "Sur-sous Invest. en €",                                                                               
    100*DECODE((t1.stockuc_p*t1.vln),0,0,(((t1.stockuc_a*t1.vln)-(t1.stockuc_p*t1.vln))/(t1.stockuc_p*t1.vln))) "Sur-sous Invest. en %",                 
    t1.dti "Date d'integration"                                                                                                                          
    from GAINPERTE t1, portgfm t2, regroupcval t3,  valgfm t5                                                                                            
    where t1.id_port = t2.id_port                                                                                                                        
    and t1.id_regroupcval = t3.id_regroupcval                                                                                                            
    and t3.cval = t5.cval                                                                                                                                
    and (t1.stockuc_p <> 0 OR t1.stockuc_a <> 0 or t1.varuc_a <>0 or t1.varuc_p <>0 )                                                                    
    and t1.dtvali = (SELECT max(t4.dtvali) from GAINPERTE t4 where                                                                                       
    t4.id_port = t1.id_port and t4.id_regroupcval = t1.id_regroupcval and t4.dtvali <= '19/02/2010')
    and t5.oaf IN (@prompt('Toto :', 'A',{'PERM','OAT','OAF','ACTION'},multi,CONSTRAINED))              
    order by t2.cport, t3.cval
    Et là je n'ai plus d'erreur alors je vais voir et remettant ce que j'ai enlevé un par un pour voir ce qui ne va pas mais franchement je ne vois pas où...

    Une autre petite question peut-on rendre facultatif un prompt?

  16. #16
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Pas en version 5.x
    Par contre, tu as des techniques pour permettre de saisir un caractère joker : "*" par exemple, pour récupérer toutes les valeurs.

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Ok d'accord merci pour ta réponse, je vais voir ce que je peux faire.

    Donc j'ai re-testé et le problème vient de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @variable('Type d''offre à fenêtre souhaité (plusieurs choix possibles) :') "Type d'offre à fenêtre",
    Même en mettant toto çà plante. Comment puis-je faire pour que cette donnée s'affiche dans le rapport?

  18. #18
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Ce qui est bizarre, c'est que si tu saisis plusieurs valeurs dans ton @prompt, ils sont séparés par des ";", ce qui a l'air de passer dans le WHERE mais pas dans le SELECT. (Pour exemple, si tu supprimes ta condition, que tu laisses le @prompt dans le SELECT, que tu appliques le paramètre "free" et que tu remplaces le ";" généré par une ",", ça fonctionne)

    Essaies simplement de supprimer ton @variable, et de voir si tu ne peux malgré tout pas accéder aux valeurs saisies via la fonction RéponseUtilisateur() (Passes par Insertion > Champ spécial pour voir la syntaxe utilisée)

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mai 2008
    Messages : 217
    Points : 71
    Points
    71
    Par défaut
    Je ne vois pas où ca se trouve la fonction. Dans Insertion/Champ Spécial j'ai ceci : 'Dates et Heures', 'Numéro de pages', 'filtres généraux', 'Filtres d'exploration' (qui est grisé) et 'Invites de requête'.

    Dans Invite de requête j'ai ma variable appelé 'Toto' mais quand je la sélectionne j'ai ceci : 'OAT';'PERM';'ACTION';'OAF' (c'est ce que j'ai sélectionné comme valeurs).

  20. #20
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Dans Invite de requête j'ai ma variable appelé 'Toto' mais quand je la sélectionne j'ai ceci : 'OAT';'PERM';'ACTION';'OAF' (c'est ce que j'ai sélectionné comme valeurs).
    Euh... Ce n'est pas ce que tu cherchais à obtenir avec ton @variable ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [2012] Probleme binary XML dans SQL
    Par NicaeaCivitas dans le forum Développement
    Réponses: 9
    Dernier message: 10/10/2014, 13h00
  2. @variable dans SQL à la carte
    Par narcisteguem dans le forum Deski
    Réponses: 1
    Dernier message: 04/06/2010, 14h34
  3. Problème avec la commande cd dans un shell
    Par kanko dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 12/09/2006, 10h40
  4. probleme la commande OR dans SQL
    Par amelhog dans le forum Langage SQL
    Réponses: 10
    Dernier message: 19/08/2005, 13h22
  5. Probleme avec guillemets dans commande HREF
    Par angelevil dans le forum ASP
    Réponses: 4
    Dernier message: 02/05/2005, 20h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo