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

Designer Discussion :

UNION de 2 clauses @where


Sujet :

Designer

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut UNION de 2 clauses @where
    Bonjour,

    Je souhaite pouvoir implémenter dans l'UDT de BI 4.2 la requête ci dessous et récupérer le résultat "ETP Paie" dans un objet dont le résultat est 0 ou 1 en fonction de l'identifiant nudoss.
    Je pensais créer 2 objets intermédiaires, faire l'union de ces 2 sous requêtes dans la clause where de mon objet final "ETP Paie" via un UNION ALL mais j'ai un message d'erreur et je ne sais pas trop comment rédiger la clause "select de l'objet final.

    Proposition de clause where de l'objet (ETP Paie) :
    @Where(Résultats calculs / Eléments\Code élément de rémunération plafond d'emploi) UNION ALL @Where(Résultats calculs / Eléments\Code élément de rémunération hors plafond d'emploi)


    Proposition de clause select de l'objet (ETP Paie) : ??

    Ci dessous la requête à transposer :

    select max("ETP Paie"),nudoss from (
    select 1 as "ETP Paie", nudoss from L_KA10, T_PCE
    where SUBSTR(L_KA10.IMBUD,7,8)=T_PCE.CODE_ALPHA AND L_KA10.ANNEE_MOIS = T_PCE.ANNEE_MOIS and DEPENSES_PLAFOND_EMPLOI = 1
    AND (CODE_ELEM IN ('101020','200125','200145','200222','200226','200255','200279','200284','200327','200362','200649','200682','200741','201229','201260') OR (CODE_ELEM LIKE '10100%'))
    union all
    select 0 as "ETP Paie", nudoss from L_KA10, T_PCE
    where SUBSTR(L_KA10.IMBUD,7,8)=T_PCE.CODE_ALPHA AND L_KA10.ANNEE_MOIS = T_PCE.ANNEE_MOIS
    AND (CODE_ELEM NOT IN ('101020','200125','200145','200222','200226','200255','200279','200284','200327','200362','200649','200682','200741','201229','201260')
    AND CODE_ELEM NOT LIKE ('10100%') OR (DEPENSES_PLAFOND_EMPLOI = 0))) group by NUDOSS;


    Merci d'avance pour votre support.

  2. #2
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Points : 4 780
    Points
    4 780
    Par défaut
    Bonjour,
    Pouvez-vous préciser sur quelle base de données vous travaillez ? Oracle ? MySQL ? SQL-Server ? etc ...
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 27
    Points : 25
    Points
    25
    Par défaut
    Bonjour,
    Moi j'ai pas tout compris mais
    1) pouvez vous indenter le code pour plus de lisibilité
    2) mettre seulement le code utile en question pour qu'on se concentre seulement sur le problème quitte à mettre des tables fictives (tableA, table B)

    A part çà, pourquoi faire un UNION ALL ? et pas un 1 seul select et ensuite calculer votre ETP, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT 
    	nudoss, 
    	CASE WHEN 
    		DEPENSES_PLAFOND_EMPLOI = 1
    		AND (CODE_ELEM NOT IN ('101020','200125','200145','200222','200226','200255','200279','200284','200327','200362','200649','200682','200741','201229','201260')
    		AND CODE_ELEM NOT LIKE ('10100%'))
    		THEN 1
    	ELSE 0
    	END AS ETP_Paie
    FROM L_KA10
    INNER JOIN T_PCE ON SUBSTR(L_KA10.IMBUD,7,8)=T_PCE.CODE_ALPHA AND L_KA10.ANNEE_MOIS = T_PCE.ANNEE_MOIS
    Avec un group by si besoin.
    J'ai l'impression que vous récupérerez toute la table et la clause Where sert seulement à conditionner le ETP_Paie, j'ai tort ?

    De là on l'objet ETP_Paie et nudoss et de là vous voulez quoi de plus ? manipuler ETP_Paie en fonction de Nudos ?
    dans la vue/table dérivée ? dans un objet de l'univers ? dans le rapport WebI ?

Discussions similaires

  1. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 17h05
  2. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 10h52
  3. Problème clause WHERE
    Par nesbla dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

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