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

Développement SQL Server Discussion :

Clause SELECT avec héritage par partition [2008R2]


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut Clause SELECT avec héritage par partition
    Bonjour à tous,

    Voici le schéma de représentation de mes 3 tables :

    Désole je n'ai pas d'outil de modélisation sous la main ..

    Nom : ex.png
Affichages : 140
Taille : 21,8 Ko

    J'ai un héritage par partition entre mes tables T1 et T2/T3.

    Pour rappel, l'héritage par partition :

    Si j'insère une ligne dans la table T1, il faut obligatoirement que j'insère une ligne dans T2 OU T3.

    Pour l'insertion, pas de problème.

    La où ca coince, c'est pour le select. Je n'arrive pas à trouver le moyen de savoir quelle table fille choisir :

    SELECT B,C FROM T1
    JOIN ??


    Y a t'il un moyen de trouver quelle est la table fille qui a la clé primaire "A" de la table "T1".

    Merci d'avance,

    Jah

  2. #2
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select b, c
    from T1 inner join (
      select a, e, f, null as g, null as h from T2 union
      select a, null as e, null as f, g, h from T3
    ) T2T3 on T1.a = T2T3.a
    tu peux aussi créer une vue pour T2T3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE VIEW V_T2T3
    AS
    select a, e, f, null as g, null as h from T2 union
    select a, null as e, f as null, g, h from T3
    puis ton select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select b, c from T1 inner join V_T2T3 on T1.a = T2T3.a

  3. #3
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut
    Bonjour Sebwar,

    Merci pour ta réponse. C'est pas tout a fait ca que je veux car avec ta méthode, je n'ai pas les champs de la table fille

    Et avec du T-SQL ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Commencez par respecter la charte de postage en postant le DDL de vos table et un jeu d'essais sous forme INSERT : http://www.developpez.net/forums/d96...vement-poster/

    Voici une solution classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE VIEW V_T2T3
    AS
    SELECT T1.*, CASE WHEN T2.COLx IS NOT NULL THEN 'T2'
                      WHEN T3.COLx IS NOT NULL THEN 'T3'
    		     END, T2...., T3....
    FROM   T1  
           LEFT OUTER JOIN T2 ON ???
    	   LEFT OUTER JOIN T3 ON ???
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé
    Homme Profil pro
    Etudiant
    Inscrit en
    Octobre 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 154
    Par défaut
    Bonjour SQLpro,

    Effectivement, désolé pour mes tables. Je n'avais pas de MCD/MPD, jeu d'essais au moment où j'ai posté.

    Votre méthode fonctionne ! Merci beaucoup

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

Discussions similaires

  1. [Toutes versions] Requete Select avec Clause WHERE par ODBC
    Par kernel57 dans le forum Access
    Réponses: 2
    Dernier message: 16/07/2014, 17h07
  2. [MySQL] insert select avec valeur par défautl
    Par omelhor dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/07/2012, 18h26
  3. [AC-2003] requete selection avec valeur par defaut
    Par benoitXV dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/03/2010, 15h31
  4. [PEAR][HTML_QuickForm] Select avec sélection par défaut
    Par Mister Nono dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 21/12/2009, 11h28
  5. Réponses: 5
    Dernier message: 10/12/2007, 15h24

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