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

Langage SQL Discussion :

Liaisons entre des requêtes (format spécifique)


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    BI
    Inscrit en
    Mars 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI

    Informations forums :
    Inscription : Mars 2019
    Messages : 30
    Par défaut Liaisons entre des requêtes (format spécifique)
    Salut !

    Je voudrais savoir si qqu pourrait m'aider, j'ai parfois du SQL à bidouiller mais je reste un noob :

    J'ai deux requêtes SQL qui incluent déjà chacune une jonction entre deux tables et qui me donnent :

    RQ1:

    NOM MONTANT
    JD 3
    JR 6
    JX 1
    JP 0
    TOTAL MONTANT = 10

    RQ2:

    NOM DATE
    JD 20/01/20
    JD 12/08/20
    JD 08/09/20
    JX 01/01/21
    NBR DE DATES = 4

    J'ai créé une liaison de RQ1 et RQ2 (WHERE RQ1.NOM = RQ2.NOM) pour obtenir le résultat suivant :

    NOM MONTANT NBR DE DATES
    JD 3 3
    JR 6 0
    JX 1 1
    JP 0 0
    TOTAL 10 4


    Mais pour l'instant j'arrive à obtenir que :

    NOM MONTANT DATE
    JD 3 20/01/20
    JD 3 12/08/20
    JD 3 08/09/20
    JR 6
    JX 1 01/01/21
    JP 0
    TOTAL 16 4

    Je trouve ça logique de trouver ce résultat mais je ne trouve pas de façon de reformater ça pour obtenir le résultat escompté.

    Merci d'avance si vous avez une piste.

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 733
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Pour obtenir de l'aide, il faut communiquer les requêtes et la description exacte des tables (pas des copies d'écran, mais les ordres complets CREATE TABLE)

    Pensez aussi à préciser le SGBD et sa version.

  3. #3
    Membre averti
    Homme Profil pro
    BI
    Inscrit en
    Mars 2019
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI

    Informations forums :
    Inscription : Mars 2019
    Messages : 30
    Par défaut
    Bonjour Escartefigue,

    En fait je n'ai pas de CREATE TABLE, j'essaye d'obtenir mon résultat avec une jonction, ce qui doit être une erreur :

    Ci-dessous le SQL complet qui me donne le résultat que j'ai communiqué dans le premier message.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    SELECT 
     
    F1.accountid, 
    F1.accountnumber, 
    F1.accountratingcodename, 
    F1.new_eudepartmentgroupname, 
    F1.new_salesrepresentativename, 
    F1.owneridname, 
    F1.owningteam, 
    F1.owningbusinessunit, 
    F1.parentaccountidname, 
    F1.statuscodename, 
    F1.fph_md_rac_airvo, 
    F1.businessunitid, 
    F1.name, 
    F1.Industrycodename,
    F2.activityid, 
    F2.activitytypecodename, 
    F2.new_appointmentproductfamilyname, 
    F2.new_newdevicesname, 
    F2.new_newproductname, 
    F2.new_typeofappointmentname, 
    F2.owneridname, 
    F2.owningbusinessunit, 
    F2.owningteam, 
    F2.processid, 
    F2.regardingobjectidname, 
    F2.scheduledstart, 
    F2.statuscodename, 
    F2.statecodename, 
    F2.businessunitid,
    F2.NewName,
    F2.name
     
    FROM (SELECT 
    FilteredAccount.accountid, 
    FilteredAccount.accountnumber, 
    FilteredAccount.accountratingcodename, 
    FilteredAccount.name, 
    FilteredAccount.new_eudepartmentgroupname, 
    FilteredAccount.new_salesrepresentativename, 
    FilteredAccount.owneridname, 
    FilteredAccount.owningteam, 
    FilteredAccount.owningbusinessunit, 
    FilteredAccount.parentaccountidname, 
    FilteredAccount.statuscodename, 
    FilteredAccount.fph_md_rac_airvo, 
    FilteredBusinessUnit.businessunitid, 
    FilteredAccount.Industrycodename
    FROM FRSALES_MSCRM.dbo.FilteredAccount FilteredAccount, FRSALES_MSCRM.dbo.FilteredBusinessUnit FilteredBusinessUnit
    WHERE FilteredAccount.owningbusinessunit = FilteredBusinessUnit.businessunitid AND FilteredAccount.Industrycodename = 'Hospital') as F1, 
     
    (SELECT 
    FilteredAppointment.activityid, 
    FilteredAppointment.activitytypecodename, 
    FilteredAppointment.new_appointmentproductfamilyname, 
    FilteredAppointment.new_newdevicesname, 
    FilteredAppointment.new_newproductname, 
    FilteredAppointment.new_typeofappointmentname, 
    FilteredAppointment.owneridname, 
    FilteredAppointment.owningbusinessunit, 
    FilteredAppointment.owningteam, 
    FilteredAppointment.processid, 
    FilteredAppointment.regardingobjectidname, 
    FilteredAppointment.scheduledstart, 
    FilteredAppointment.statuscodename, 
    FilteredAppointment.statecodename, 
    FilteredBusinessUnit.businessunitid, 
    FilteredBusinessUnit.name,
     
    CASE 
    WHEN CHARINDEX(' - RAC',FilteredAppointment.regardingobjectidname) >1 
    THEN LEFT(FilteredAppointment.regardingobjectidname,CHARINDEX(' - RAC',FilteredAppointment.regardingobjectidname)-1)
    ELSE FilteredAppointment.regardingobjectidname
    END As 'NewName'
     
     
     
     
    FROM FRSALES_MSCRM.dbo.FilteredAppointment FilteredAppointment, FRSALES_MSCRM.dbo.FilteredBusinessUnit FilteredBusinessUnit
    WHERE FilteredAppointment.owningbusinessunit = FilteredBusinessUnit.businessunitid AND ((FilteredAppointment.scheduledstart>={ts '2020-04-01 00:00:00'}))) as F2
     
    WHERE F1.Name = F2.NewName

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 733
    Billets dans le blog
    10
    Par défaut
    Quel est le SGBD et quelle est sa version ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 031
    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 031
    Billets dans le blog
    6
    Par défaut
    Il faut faire une jointure externe à gauche de Q1 vers Q:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... FROM Q1 JOIN Q2 ON Q1.nom = Q2.nom
    et ajouter un comptage sur le nombre de dates :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ...., COUNT("DATE")
    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/ * * * * *

Discussions similaires

  1. Liaison entre des structures
    Par hatemba dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 11/05/2011, 22h41
  2. Liaison entre des tables différentes
    Par lebelo dans le forum kettle/PDI
    Réponses: 5
    Dernier message: 30/04/2009, 13h52
  3. [PPT-2002] Liaison entre des diapositives
    Par Tifred7 dans le forum Powerpoint
    Réponses: 2
    Dernier message: 30/03/2009, 00h03
  4. Liaisons entre des feuilles excel
    Par sophieb dans le forum Excel
    Réponses: 1
    Dernier message: 03/02/2009, 00h18
  5. ACCESS 97, requête union, problème de liaison entre 2 requêtes
    Par AGR26 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/09/2007, 19h00

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