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 :

[2008 R2] Problème de order by


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut [2008 R2] Problème de order by
    Hello à tous,

    Dans une procédure stockée, j'ai l'instruction SELECT suivante :

    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
     
            SELECT
                    DES_DATE
                    CHQ_TYPE,
                    CHQ_YEAR,
                    MIN(MINIMA) AS 'MIN',
                    MAX(MAXIMA) AS 'MAX'
            FROM    
                    #T4
            GROUP BY
                    DES_DATE,
                    CHQ_TYPE,
                    CHQ_YEAR,
                    TROU
            HAVING
                    ISNULL(@GFT_ID,0) IN    (
                                            SELECT    GFT_ID
                                            FROM    dbo.T_CHEQUE_CHQ
                                            WHERE    CHQ_TYPE = #T4.CHQ_TYPE AND CHQ_YEAR = #T4.CHQ_YEAR
                                            AND    CHQ_SERIAL BETWEEN MIN(MINIMA) AND MAX(MAXIMA)
                                            UNION
                                            SELECT    0
                                            )
            ORDER BY
                    DES_DATE DESC,
                    CHQ_TYPE,
                    CHQ_YEAR,
                    MIN(MINIMA)
    Et sur cette instruction, SQL SERVER me renvoie l'erreur suivante :
    A column has been specified more than once in the order by list. Columns in the order by list must be unique.
    J'ai beau regardé, je ne vois pas deux fois la même colonne dans la clause order by...

    N.B. : Les colonnes MINIMA et MAXIMA sont alimentées par un MIN et MAX sur la colonne CHQ_SERIAL.

    Y a un truc ?

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    C'est quoi ce message d'erreur débil qui n'a rien à voir avec l'erreur ?

    En fait, il manque une virgule dans la clause SELECT...

    J'aurais du avoir une erreur au parsing non ?

    Je ne comprends pas... C'est d'autant plus exaspérant que ça fait perdre bêtement plein de temps... (aussi bien à moi qu'à ceux qui tenteraient de me venir en aide...)

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Non, pas d'erreur de parsing, car CHQ_TYPE est alors considéré comme un alias de la colonne DES_DATE (comme si vous aviez fait DES_DATE AS CHQ_TYPE, le "AS" n'est pas obligatoire...)

    Du coup tout s'explique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ORDER BY DES_DATE,
                    CHQ_TYPE,
                  ...
    contient en effet deux fois la colonne DES_DATE, une fois par son nom, une fois par son alias...

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Vu comme ça...

    [MAUVAISE FOI]
    Le AS devrait être obligatoire alors, c'est là qu'est le vrai problème.
    [/MAUVAISE FOI]

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

Discussions similaires

  1. [MySQL] problème avec ORDER BY _ DESC avec des flottants
    Par Hayabusa dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/08/2006, 01h00
  2. problème avec order by et union
    Par ghostdog dans le forum Langage SQL
    Réponses: 8
    Dernier message: 23/05/2006, 10h54
  3. [XSD] Problème d'order sur des noeuds dans un schema
    Par jesus144 dans le forum Valider
    Réponses: 2
    Dernier message: 13/04/2006, 16h59
  4. Petit problème de "ORDER BY"
    Par beegees dans le forum Access
    Réponses: 9
    Dernier message: 14/06/2005, 10h38
  5. Problème de Order by dans une requête
    Par showa dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/08/2004, 16h40

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