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 :

Bug the SQL sur Tri descendant possible ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Par défaut Bug the SQL sur Tri descendant possible ?
    Bonjour a tous

    Je viens de voir un petit bug qui me pose quelques souci ... J'ai fais une vue qui permet d'afficher en premier la dernier valeur de la table lors de l'éxécution de la vue le résultat semble bon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP (100) PERSENT Cpk_COLD_Diameter  From dbo.ViewBHD_Report Order By BHD_BTCH_value_DESC
    Lors du résultat j'obtient ceci :
    1. 1.938
    2. 2.121
    3. 1.97

    Tous va bien !

    Mais après avoir sauvegardé la vue, et que je fais un " select 1000 row " je vois ceci :
    1. 2.121
    2. 1.938
    3. 1.97

    Mon tri ne fonctionne plus. D'après google je suis tombé sur un forum qui parlais de batch... Avez-vous une idée du problème ??

    Voici des printscreens :
    Nom : Execution view SQL by design.PNG
Affichages : 309
Taille : 92,0 KoNom : Execution view SQL by select 1000 row.PNG
Affichages : 311
Taille : 79,7 Ko

  2. #2
    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,

    Un ORDER BY dans une vue n'a aucun sens. Le résultat d'une vue est une table, et il n'existe pas de notion d'ordre dans une table.
    D'ailleurs, un ORDER BY dans une vue n'est en principe pas accepté, c'est uniquement votre artifice TOP(100) PERCENT qui permet la présence de votre clause de tri.

    Si vous voulez obtenir des résultats triés, alors il faut mettre votre ORDER BY dans la requête finale

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour,

    Si vous voulez obtenir des résultats triés, alors il faut mettre votre ORDER BY dans la requête finale
    Que voulez-vous dire part là ? le faire dans la table ?

    en faite j'ai un OPC server qui récupère l'information venant de la vue ...

    En faite il faudrait que dans ma requête j'affiche que la plus grande valeur de BHD ID afin d'avoir une ligne de résultat ? car j'ai essayé en mettant un "max( BHD_BTCH_ID) mais sa fonctionnent pas. Ce tag est un auto incrément

  4. #4
    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
    Citation Envoyé par bndexsen Voir le message
    Que voulez-vous dire part là ? le faire dans la table ?
    Non : mettre le ORDER BY dans la requete qui accède à la vue.


    Citation Envoyé par bndexsen Voir le message
    En faite il faudrait que dans ma requête j'affiche que la plus grande valeur de BHD ID afin d'avoir une ligne de résultat ? car j'ai essayé en mettant un "max( BHD_BTCH_ID) mais sa fonctionnent pas. Ce tag est un auto incrément
    Comme ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    WITH CTE AS (
    SELECT *, ROW_NUMBER() OVER(ORDER BY BHD_BTCH_value DESC) as RN
    From dbo.ViewBHD_Report Order By BHD_BTCH_value_DESC
    )
    SELECT *
    FROM CTE
    WHERE RN = 1

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

Discussions similaires

  1. SQl Server tri sur deux colonnes
    Par amine008 dans le forum Développement
    Réponses: 2
    Dernier message: 11/12/2011, 03h50
  2. bug de sql server sur le top
    Par thelpi dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/03/2009, 00h30
  3. Query SQL avec tri sur une date + groupement
    Par Raphael1980 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/02/2009, 16h12
  4. DB2 [Micro et Iseries] TRI SQL sur un for update
    Par fweiner dans le forum DB2
    Réponses: 4
    Dernier message: 21/08/2008, 11h35
  5. [SQL SERVER ] Tri sur plusieurs champs
    Par fantomchris dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/07/2006, 18h59

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