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 :

SQL Server 2000 Max d'une sous-requête


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    CIO
    Inscrit en
    Novembre 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : CIO

    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Points : 47
    Points
    47
    Par défaut SQL Server 2000 Max d'une sous-requête
    Bonjour,

    J'ai la requête suivante qui fait une union de deux tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select npordn as ORDNO, max(npcvnb) as C6CVNB
    from neg006p
    where npordn <> ''
    group by npordn
    union 
    select ordn as ORDNO,  max(sdmd) as C6CVNB 
    from dmdrefrq
    where sdmd in (
    select c6cvnb from mbc6rep
    where c6dccd='1')
    and ordn like 'P%'
    group by ordn
    Par contre elle me génère des doublons, alors j'ai essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select ORDNO, max(C6CVNB) as c6cvnb from 
    (select npordn as ORDNO, max(npcvnb) as C6CVNB from neg006p
    where npordn <> ''
    group by npordn
    union 
    select ordn as ORDNO,  max(sdmd) as C6CVNB from dmdrefrq
    where sdmd in (
    select c6cvnb from mbc6rep
    where c6dccd='1')
    and ordn like 'P%'
    group by ordn
    )
    group by ORDNO
    En clair je reprends la même requête dont j'extrais ORDNO et la valeur max de C6CVNB, mais j'ai un message d'erreur:
    Serveur*: Msg 156, Niveau 15, État 1, Ligne 13
    Syntaxe incorrecte vers le mot clé 'group'.

    Une idée?

  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 888
    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 888
    Points : 53 122
    Points
    53 122
    Billets dans le blog
    6
    Par défaut
    Vous devez explicitement donner un nom (alias) à la sous requête en table dérivée.

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    group by ordn
    ) AS T
    group by ORDNO
    A +

    Et n'oublier pas d'utiliser la balise CODE (dernier bouton de la barre d'icone) pour bien identifier votre SQL

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Avec SQL Server il est obligatoire d'aliaser vos sous-requêtes.

    Edit : grilled !

  4. #4
    Membre du Club
    Profil pro
    CIO
    Inscrit en
    Novembre 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : CIO

    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Points : 47
    Points
    47
    Par défaut
    Merci à vous 2, je viens de m'en rendre compte et vous le confirmez.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/03/2009, 09h33
  2. [SQL Server 2000] Extraction dans une chaine de caracteres
    Par KOFJCH dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2006, 09h28
  3. [sql server 2000]aide pour une requete
    Par graphicsxp dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 22/05/2006, 18h24
  4. Réponses: 16
    Dernier message: 14/04/2006, 18h38
  5. [SQL Server 2000][W2000] Empêcher une connexion
    Par Débéa dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 01/02/2006, 11h33

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