Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2012, 14h06   #1
Membre régulier
 
Inscription : septembre 2007
Messages : 120
Détails du profil
Informations personnelles :
Localisation : Jamaïque

Informations forums :
Inscription : septembre 2007
Messages : 120
Points : 73
Points : 73
Par défaut ROW_NUMBER() 2 jeux de résultat ?!

Bonjour,

avec la requête suivante j'obtiens 2 jeux de résultat et je ne comprends pas pourquoi :

Code :
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
 
WITH [Table_Temp] AS ( 
  	SELECT case when master.dbo.fn_varbintohexstr([Cust_ Menu Roast Header].[timestamp]) IS NULL then '1' else master.dbo.fn_varbintohexstr([Cust_ Menu Roast Header].[timestamp]) end + case when master.dbo.fn_varbintohexstr([Cust_ Menu Roast Line].[timestamp]) IS NULL then '1' else master.dbo.fn_varbintohexstr([Cust_ Menu Roast Line].[timestamp])  END AS [DropDownValue], 
         [No_],
         [Cust_ Menu Roast Header].[Contact No_],
         [Cust_ Menu Roast Header].[Type], 
         [Cust_ Menu Roast Header].Code, 
         [Roast Element], 
         [Cust_ Menu Roast Header].[Grammage Code], 
         [Cust_ Menu Roast Header].[Date Start], 
         [Cust_ Menu Roast Header].[Date End], 
         [Cust_ Menu Roast Header].[UPDATE ORDER Allowed], 
         [Cust_ Menu Roast Header].[Supplement %], 
         [Cust_ Menu Roast Header].[Cancelation %], 
         [Cust_ Menu Roast Header].[Max Meal Number], 
         [Day of Week], [Element ON Menu], 
         [Element ON Pre-ORDER], 
         [Free Element], Sort, 
         [Cust_ Menu Roast Header].[Kitchen Code], 
  		 ROW_NUMBER() OVER(ORDER BY [Cust_ Menu Roast No_],[Roast Element],[Day of Week]) AS 'ROW_NUMBER' 
    FROM [Cust_ Menu Roast Header] 
  	LEFT OUTER JOIN [Cust_ Menu Roast Line] 
  	ON [Cust_ Menu Roast Header].No_ = [Cust_ Menu Roast Line].[Cust_ Menu Roast No_] 
) 
SELECT * FROM [Table_Temp] 
WHERE [contact no_] = 'R02489' AND code ='GC9'
resultat 1 :
ROW_NUMBER = 2785

Resultat 2 :
ROW_NUMBER = 2460
dkmix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2012, 13h01   #2
Membre régulier
 
Inscription : septembre 2007
Messages : 120
Détails du profil
Informations personnelles :
Localisation : Jamaïque

Informations forums :
Inscription : septembre 2007
Messages : 120
Points : 73
Points : 73
Pb contourné.

Je triais dans le 'OVER' avec :
Code :
(ORDER BY [Cust_ Menu Roast No_],[Roast Element],[Day of Week]
alors que la table [Cust_ Menu Roast Line] est en 'LEFT OUTER JOIN'.
dans ma table [Cust_ Menu Roast Line] je n'avais pas toujours de [Cust_ Menu Roast No_]

j'ai donc remplacé par :
Code :
ORDER BY [Cust_ Menu Roast Header].[No_],[Roast Element],[Day of Week]
Cependant,avant de clôturer en résolu, si j'élargie ma question, comment sql serveur trie (dans le OVER) lorsque les valeurs sont identiques ? Et pourquoi il me renvoyait seulement 2 jeux de résultat ? Si c'était aléatoire, j'aurais n jeu de résultat non ?
dkmix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h27.


 
 
 
 
Partenaires

Hébergement Web