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

MS SQL Server Discussion :

Select from other db


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut Select from other db
    Je voudrais mettre des donées qui sont comme suit/

    view1 de la base db1
    view1 de la base db2
    view1 de la base db2

    le resulta dans une table(Tb_Result) qui se trouve sur la db4

    Bien les views et la table ont la meme structure excepté que la table a un identifiant pour indiquer de quel vieuw il est venu le record

    Aide

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO db4.dbo.Tb_Result (source, mes_colonnes)
    SELECT 1 as source, mes_colonnes FROM db1.dbo.view1
    UNION ALL
    SELECT 2 as source, mes_colonnes FROM db2.dbo.view1
    ...

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci Rudib pour ta reponse,

    Mais j'ai un petit souci, la table T_Result a une colone de plus que les vieuws, c'est à dire une colonne qui sert à dire, tel record viens de view 1, donc j'insere v1, pour vieuw 2, j'insere v2, etc..

    Alors ya il il une façon de proceder, merci d'avance

  4. #4
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    En lisant la requête que j'ai posée ci-dessus, tu verras que cela répond à ta question.
    ou
    que tu ajoutes dans le SELECT des colonnes de ta vue.

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci pour ta reponse

    Et si alors les vues avaient exactement la meme struture que la table T_Result

    Comment seraient la requete, ceci est correct ?

    INSERT INTO db4.dbo.Tb_Result (source, mes_colonnes)
    SELECT v1 as source FROM db1.dbo.view1
    UNION ALL
    SELECT v2 as sourceFROM db2.dbo.view2

    Exccuse moi, je suis un peu nouveau dans tout ca

    Merci d'avance

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Merci d'utiliser la balise [CODE].

    La syntaxe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO db4.dbo.Tb_Result (colonne1, colonne2, colonne3)
    SELECT colonne1, colonne2, colonne3 FROM db1.dbo.view1
    UNION ALL
    SELECT colonne1, colonne2, colonne3 FROM db2.dbo.view2
    colonne1, colonne2, colonne3 sont des colonnes de tes vues. Dans cette syntaxe, tu indique explicitement les colonnes à insérer dans la table.

    veut dire : SELECT 'une constante de type chaîne de caractères' AS alias
    Alias étant l'alias de colonne.
    Exeécute simplement
    dans Query Analyzer pour voir le résultat.
    Ca te permet de mélanger dans le SELECT sur ta vue, des valeurs de colonnes et une constante indiquant la source des données.

  7. #7
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    voici en exemple (et non testé, à vérifier que tout se passe bien), de code pour partitionner l'insert par date (ici par semaine) :

    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
     
    DECLARE @rowcount int, @data datetime
     
    SET @rowcount = 1
    SELECT @date = MIN(madate) FROM db1.dbo.view1
    SET @date = SELECT CAST(FLOOR(CAST(@date AS FLOAT)) AS DATETIME)
     
    WHILE @rowcount > 0 BEGIN
     
    	INSERT INTO db4.dbo.Tb_Result (macle, 1, colonne1, colonne2, colonne3)
    	SELECT macle, source, colonne1, colonne2, colonne3 FROM db1.dbo.view1
    	WHERE madate BETWEEN @date AND DATEADD(millisecond, 604799996, @date)
    	-- 604799996 = 6 jours + 23:59:59:997
     
    	SET @date = DATEADD(day, 7, @date)
    	SET @rowcount = @@ROWCOUNT
     
    END -- WHILE

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci Rudib et tous ceux qui ont pris le temps de lire mes posts

    Merci Rudib encore une fois parce que ca marche tres bien..
    J'ai vriament bien appris de toi..

    J'attends que lise avant de mettre [Resolu]

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

Discussions similaires

  1. [COUNT] select ... from ... where count !
    Par tmcgrady dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2007, 17h29
  2. SELECT * FROM (Transform...pivot...)... ???
    Par davidso dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/01/2006, 18h04
  3. Réponses: 5
    Dernier message: 31/10/2005, 13h25
  4. un SELECT FROM ????
    Par tarik75 dans le forum Langage SQL
    Réponses: 18
    Dernier message: 17/07/2005, 12h04
  5. Equivalent du Select * from ::Fn_Fonction()
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/07/2004, 09h48

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