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 :

Jointure.. accoler deux résultats de requettes


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 22
    Par défaut Jointure.. accoler deux résultats de requettes
    Bonjour,
    J’ai besoin d’accoler le résultat de 2 requêtes... Le problème est que ces requêtes utilisent des bases différentes, qui ont une colonne commune (datetime) mais que celle-ci n'est pas strictement égale d'une table à l'autre.

    J'ai donc essayé de faire une jointure sur le jour avec
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
     DATEPART(DAY,datetime)
    mais cela me renvoie une erreur "Cannot find either column "A" or the user-defined function or aggregate "A.datepart", or the name is ambiguous.".Avez-vous une autre idée?

    La requête 1 récupère les valeurs d'une variable discrète/jour.

    La requête 2 récupère des noms /jour.

    Le but est de coller le nom aux valeurs de la requête 1

    Requête 1 :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select 
    datepart(day,datetime) as day
    ,datepart(month,datetime) as month
    ,datepart(year,datetime) as year
    ,value 
     
    from dbo.DiscreteHistory where tagname='S13_PULS_TM1'
     
    group by datepart(day,datetime),datepart(month,datetime),datepart(year,datetime),value
    order by datepart(day,datetime),datepart(month,datetime),datepart(year,datetime),value

    Requête 2 :

    Code sql : 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
     
    select 
    datepart(day,datetime) as day
    ,datepart(month,datetime) as month
    ,datepart(year,datetime) as year
    ,Unitorconnection
    , Batch_ID
     
    from 
    		BatchHistory.dbo.BatchIdLog  A, BatchHistory.dbo.BatchDetail B
    where 
    Unitorconnection like 'S13__TM1'
    and datepart(day,datetime) =datepart(day,getdate())
    and datepart(month,datetime)=datepart(month,getdate())
    and datepart(year,datetime) =datepart(year,getdate())
    and A.Batch_Log_ID=B.Batch_Log_ID
     
     
    group by datepart(day,datetime),datepart(month,datetime),datepart(year,datetime),Unitorconnection,Batch_ID
    order by datepart(day,datetime),datepart(month,datetime),datepart(year,datetime),Unitorconnection,Batch_ID

    Jointure :

    Code "SQL" : 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
    select 
    datepart(day,datetime) as day
    ,datepart(month,datetime) as month
    ,datepart(year,datetime) as year
    ,value 
    ,Unitorconnection
    , Batch_ID
     
    from BatchHistory.dbo.BatchIdLog  A, BatchHistory.dbo.BatchDetail B, runtime.dbo.DiscreteHistory C
     
    where 
    tagname='S13_PULS_TM1'
    and Unitorconnection like 'S13__TM1'
    and A.Batch_Log_ID=B.Batch_Log_ID
    and A.datepart(day,datetime) = C.datepart(day,datetime) 
     
     
    group by datepart(day,datetime),datepart(month,datetime),datepart(year,datetime),value,Unitorconnection, Batch_ID
    order by datepart(day,datetime),datepart(month,datetime),datepart(year,datetime),value,Unitorconnection, Batch_ID

  2. #2
    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
    Les jointures se font avec JOIN et clause ON et non dans le WHERE. Là vous faites de produits cartésiens.

    A lire : http://sqlpro.developpez.com/cours/s...intures/#LII-B

    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/ * * * * *

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

Discussions similaires

  1. Jointure entre deux résultats de 2 requetes
    Par fullmetalalchemiste dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/05/2012, 19h08
  2. Résultat jointure entre deux tables
    Par keitaro_bzh dans le forum Débuter
    Réponses: 2
    Dernier message: 07/08/2009, 15h03
  3. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  4. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50
  5. jointure entre deux requete
    Par Youssef dans le forum Langage SQL
    Réponses: 21
    Dernier message: 15/01/2004, 15h13

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