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

MS SQL Server Discussion :

Décalage de ROW_NUMBER avec ajout d'un where


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut Décalage de ROW_NUMBER avec ajout d'un where
    Bonjour,

    J'ai un petit soucis de décalage avec la fonction ROW_NUMBER que je n'arrive pas à comprendre et résoudre

    J'ai une vue me permettant de générer des courbes. J'ai besoin de numéroter les points, j'utilise donc la fonction ROW_NUMBER :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT JOUR, AGO_2011, AGO_2012, ROW_NUMBER() OVER (ORDER BY JOUR) as NUM_POINT 
    FROM COURBES_VOTE_AG
    Cette requête me renvoie :
    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
    -49	NULL	0.00	1
    -33	0.24	NULL	2
    -32	0.98	NULL	3
    -31	0.98	NULL	4
    -30	0.98	NULL	5
    -29	3.39	NULL	6
    -28	6.09	NULL	7
    -27	8.73	NULL	8
    -26	11.33	NULL	9
    -25	12.21	NULL	10
    -24	12.21	NULL	11
    -23	12.21	NULL	12
    -22	12.21	NULL	13
    -21	12.98	NULL	14
    -20	13.94	NULL	15
    -19	15.86	NULL	16
    -18	16.90	NULL	17
    -17	16.90	NULL	18
    -16	16.90	NULL	19
    -15	17.41	NULL	20
    -14	17.99	NULL	21
    -13	18.74	NULL	22
    -12	19.48	NULL	23
    -11	20.02	NULL	24
    -10	20.02	NULL	25
    -9	20.02	NULL	26
    -8	20.36	NULL	27
    -7	20.76	NULL	28
    -6	21.14	NULL	29
    -5	21.58	NULL	30
    -4	NULL	NULL	31
    -3	NULL	NULL	32
    -2	NULL	NULL	33
    -1	NULL	NULL	34
    0	NULL	NULL	35
    Jusque là tout va bien.

    Le but de la manip suivante est de récupérer les lignes où AGO_2011 est supérieur ou égal à 20. Il doit donc me renvoyer les lignes de 24 à 30.
    Mais si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select * 
    from 
    	(SELECT JOUR, AGO_2011, AGO_2012, ROW_NUMBER() OVER (ORDER BY JOUR) as NUM_POINT 
    	FROM COURBES_VOTE_AG)COURBES 
    where COURBES.AGO_2011 >= 20
    J'obtiens de résultat avec un décalage de mon ROW_NUMBER :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -11	20.02	NULL	23
    -10	20.02	NULL	24
    -9	20.02	NULL	25
    -8	20.36	NULL	26
    -7	20.76	NULL	27
    -6	21.14	NULL	28
    -5	21.58	NULL	29
    C'est comme s'il recalculait le ROW_NUMBER en ne tenant pas compte de la 1ere valeur NULL de la colonne AGO_2011.

    Une idée pour que la close WHERE ne modifie pas la valeur du ROW_NUMBER ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Hmm curieux je n'ai pas ce souci en reprenant vos données. Je commence au point 24 jusqu'à 30.

    Quelle version de SQL Server utilisez-vous et quel service pack ?

    ++

  3. #3
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    Bonjour,

    Je suis en SQL Server 2005 64 bits mais je ne sais pas quel service pack
    La version est SQL Server 9.0.3068 donc à priori je crois que c'est SP2 d'après google ?

    Ma base de données a comme classement French_CS_AS.

Discussions similaires

  1. [XSLT]recopie XML avec ajout attribut
    Par snoop dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 25/07/2006, 00h39
  2. Pb IE Décalage dans fenetre avec ScrollTo ou ScrollBy
    Par philou8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/03/2006, 14h09
  3. RegExp : Problem avec ajout de retour a la ligne
    Par Roming22 dans le forum Linux
    Réponses: 3
    Dernier message: 12/01/2006, 19h44
  4. liste déroulante avec ajout possible
    Par bachilbouzouk dans le forum ASP
    Réponses: 5
    Dernier message: 19/04/2005, 11h48

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