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

Requêtes et SQL. Discussion :

Union avec condition relative [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Union avec condition relative
    Bonjour,

    J'ai trois table qui sont constituées exactement de la meme façon :

    EAC0_Report - Première estimation des cout d'un projet
    EAC_Report - Dernière estimation des couts
    Actuals_Report - Couts des projets en cours

    [EAC0_ID], [Source], [SAP_Number], [Project_Name], [WBS_Element], [WBS_Element_Name], [Cost_Element], [Cost_Element_Name], [Cost_Centre], [Cost_Centre_Name], [Fiscal_Year_Period], [Hours], [Euros]
    [EAC_ID], -> Même structure
    [Actuals_ID], -> Même structure

    Elle sont similaires mais les sources et les données qu'elles presentent sont différentes.. et les deux dernières sont rafraichies tout les mois..

    Je souhaite faire une requite pour compiler ces trois tables (ce que je suis parvenu a faire) cependant je souhaiterais ajouter un critère lors de l'union de la table "EAC0".
    Je voudrais que la requête ne joigne les données "EAC0" seulement lorsqu'il retrouve le meme numéro de projet dans la table "actuals" et dans la table "EAC0"

    voici mon code :

    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
    SELECT Query2.[Source], Query2.[SAP_Number], Query2.[WBS_Element], Query2.[WBS_Element_Name], Query2.[Cost_Element], Query2.[Cost_Element_Name], Query2.[Cost_Centre], Query2.[Cost_Centre_Name], Query2.[Fiscal_Year_Period], Query2.[Hours], Query2.[Euros], Project_List.[Department], Project_List.[Manuf_Site], Project_List.Project_Name
     
    FROM (
     
    SELECT [Source], [SAP_Number], [Project_Name], [WBS_Element], [WBS_Element_Name], [Cost_Element], [Cost_Element_Name], [Cost_Centre], [Cost_Centre_Name], [Fiscal_Year_Period], [Hours], [Euros]
    FROM Actuals_Report
     
    UNION 
     
    SELECT [Source], [SAP_Number], [Project_Name], [WBS_Element], [WBS_Element_Name], [Cost_Element], [Cost_Element_Name], [Cost_Centre], [Cost_Centre_Name], [Fiscal_Year_Period], [Hours], [Euros]
    FROM EAC0_Report 
     
    UNION 
     
    SELECT [Source], [SAP_Number], [Project_Name], [WBS_Element], [WBS_Element_Name], [Cost_Element], [Cost_Element_Name], [Cost_Centre], [Cost_Centre_Name], [Fiscal_Year_Period], [Hours], [Euros]
    FROM EAC_Report
     
    )  AS Query2 INNER JOIN Project_List ON Query2.SAP_Number = Project_List.Project_ID;
    en gros il me faudrait une condition du genre "WHERE EAC0_Report.SAP_Number=Actuals_Report.SAP_Number" quelque part..

    Je sais pas si c'est bien clair ni si c'est faisable m'enfin vous me le direz

    Merci pour votre aide!

    Vincent

    PS : cette query fait aussi le lien avec la table projet pour aller y chercher d'autres infos mais c'est pas important

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 108
    Points : 5 231
    Points
    5 231
    Par défaut
    Bonjour,

    On peut faire une jointure dans le 2e select ou utiliser une condition "exists" :

    Citation Envoyé par Vincent LS Voir le message
    UNION

    SELECT [Source], [SAP_Number], [Project_Name], [WBS_Element], [WBS_Element_Name], [Cost_Element], [Cost_Element_Name], [Cost_Centre], [Cost_Centre_Name], [Fiscal_Year_Period], [Hours], [Euros]
    FROM EAC0_Report WHERE EXISTS (select ... from actuals)

    UNION

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Et merci pour ta réponse qui m'a permis de trouver la solution en ajoutant une condition "WHERE" dans le "WHERE EXISTS" aha :

    Voici le resultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT [Source], [SAP_Number], [Project_Name], [WBS_Element], [WBS_Element_Name], [Cost_Element], [Cost_Element_Name], [Cost_Centre], [Cost_Centre_Name], [Fiscal_Year_Period], [Hours], [Euros]
    FROM EAC0_Report WHERE EXISTS (SELECT [SAP_Number] FROM Actuals_Report WHERE EAC0_Report.[SAP_Number]=Actuals_Report.[SAP_Number])

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Union avec condition entre les lots
    Par Loko dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/01/2016, 15h59
  2. [AC-2010] Requête Union avec condition
    Par blowd dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/01/2013, 12h45
  3. Index avec conditions
    Par marhnix dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 29/03/2004, 10h48
  4. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48
  5. [MaskEditBox] Affecter avec un réel
    Par fikou dans le forum Général VBA
    Réponses: 6
    Dernier message: 16/09/2002, 09h28

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