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 :

SELECT dans SELECT


Sujet :

Développement SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 29
    Points
    29
    Par défaut SELECT dans SELECT
    Bonjour, voici la requête que j'essaie de passer et qui ne fonctionne pas, j'aimerais avoir de l'aide parce que je ne parviens pas à comprendre d'ou vient le problème..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT 
      YEAR(VM.DATEPRISEVENTE) AS ANNEE, 
      MONTH(VM.DATEPRISEVENTE) AS MOIS, 
      SUM(VP.PRIXVENTE) AS PRIXVENTE, 
     
    FROM TI_VENTEM VM WITH(NOLOCK)  INNER JOIN TI_VENTEP VP WITH(NOLOCK) ON VP.VENTEUID = VM.VENTEUID  
    INNER JOIN TM_CONNAISSANCE CON WITH(NOLOCK) ON VM.CLIENTUID=CON.MEMBREUID  
    WHERE  
      VM.DATEPRISEVENTE >= '09/01/2008 00:00:00'  
      AND  VM.DATEPRISEVENTE < '09/01/2009 00:00:00' 
      AND CON.MARCHEUID = (SELECT TOP 1 CON.MARCHEUID FROM TM_CONNAISSANCE CO WHERE CO.MEMBREUID=VM.CLIENTUID ORDER BY CO.ANNEE DESC)  
     
    GROUP BY YEAR(VM.DATEPRISEVENTE), MONTH(VM.DATEPRISEVENTE)
    La partie de la requête qui pose problème est celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AND CON.MARCHEUID = (SELECT TOP 1 CON.MARCHEUID FROM TM_CONNAISSANCE CO WHERE CO.MEMBREUID=VM.CLIENTUID ORDER BY CO.ANNEE DESC)
    Si je met directement MARCHEUID='RefDuMarcheUid' alors ça marche
    Mais j'ai l'impression que le VM.CLIENTUID dans le SELECT à l'intérieur du SELECT ne passe, il ne récupère pas le VM.CLIENTUID courant de la requête "mère"

    Savez-vous comment je peux faire ?

  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
    21 766
    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 : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    TOP n'est pas garantie parce que ce n'est pas un opérateur relationnel, surtout lorsqu'il est encapsulé dans une vue ou une sous requête !

    Commencez par respecter les règles de ce forum en postant le DDL, un jeu d'essais sous forme INSERT et un exemple de résultat : http://www.developpez.net/forums/d96...vement-poster/

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

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Points : 29
    Points
    29
    Par défaut [RESOLU]
    Ca y est le problème est résolu et ne venait pas tant de la syntaxe de ma requête que de ma compréhension des liaisons entre les tables
    Donc il n'y a pas vrt de réponse à poster..

    Toujours est-il que SQLPRO a raison et que j'ai remplacé le CON.MARCHEUID = par un CON.MARCHEUID IN

    Voila merci !

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

Discussions similaires

  1. Select dans select
    Par bella1 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2009, 16h19
  2. Réponses: 2
    Dernier message: 10/08/2009, 09h24
  3. Select dans Select
    Par dumser1 dans le forum Langage SQL
    Réponses: 16
    Dernier message: 22/10/2008, 09h57
  4. PB Select dans Select
    Par amel123456789 dans le forum SQLite
    Réponses: 1
    Dernier message: 03/06/2008, 16h36
  5. Requête (select dans select)
    Par zut94 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/03/2006, 11h38

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