Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 20/01/2011, 10h05   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Par défaut SQL server pb de Top 10 par catégorie

Bonjour à tous,

Je n'arrive pas à résoudre mon problème c'est pour cela que je fais appel à vous. Je suis sur du SQL server et j’essaie de faire un classement sur les 10 meilleurs articles en CA (Montant_Net_Promo) par catégorie de produit. Peut être que la fonction Top ne correspond pas à ce que je dois faire. Mon code est celui ci et les résultats sont totalement incohérents :

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 1 
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 2
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 3
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 4
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 6
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 7
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 10
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 11
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 12
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 15
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 21
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 31
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 50
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 51
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 52
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 53
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 56
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 57
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 59
ORDER BY [MONTANT_NET_PROMO] DESC ;
Merci pour votre aide .
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h23   #2
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Mets le
Code :
ORDER BY [MONTANT_NET_PROMO] DESC
pour chacune des requêtes séparément !
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h37   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Par défaut Test

Citation:
Envoyé par zinzineti Voir le message
Mets le
Code :
ORDER BY [MONTANT_NET_PROMO] DESC
pour chacune des requêtes séparément !
J'ai fait les modifs dans le code, il renvoi une erreur de "syntaxe sur le mot clé "union" . Mon code modifié est le suivant :

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 1 
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 2
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 3
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 4
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
ORDER BY [MONTANT_NET_PROMO] DESC
WHERE GT = 6
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 7
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 10
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 11
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 12
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 15
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 21
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 31
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 50
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 51
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 52
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 53
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 56
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 57
ORDER BY [MONTANT_NET_PROMO] DESC
union ALL
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 59
ORDER BY [MONTANT_NET_PROMO] DESC ;

Merci pour la réponse rapide en tout cas ...
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 10h54   #4
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Non tu ne peux pas faire des ORDER BY avec UNION.

C'est pourquoi j'ai dit séparément. donc pas avec des UNION
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h02   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Citation:
Envoyé par zinzineti Voir le message
Non tu ne peux pas faire des ORDER BY avec UNION.

C'est pourquoi j'ai dit séparément. donc pas avec des UNION
Ok, mais quelle solution adopter pour faire mon top 10 par catégorie, si j'enlève les union ma clause where est applicable que sur un GT et donc j'obtiens seulement 10 lignes. N'y a t-il pas une solution grâce à une boucle et une variable ou en utilisant les limite.

Merci de ton aide en tout cas .
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h22   #6
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Essaye ceci

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 1 
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 2
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 3
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 4
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
ORDER BY [MONTANT_NET_PROMO] DESC
WHERE GT = 6
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 7
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 10
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 11
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 12
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 15
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 21
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 31
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 50
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 51
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 52
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 53
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 56
ORDER BY [MONTANT_NET_PROMO] DESC
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 57
ORDER BY [MONTANT_NET_PROMO] DESC
 
 
SELECT 
TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 59
ORDER BY [MONTANT_NET_PROMO] DESC ;
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h34   #7
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Citation:
Envoyé par zinzineti Voir le message
Essaye ceci

[...]
J'obtiens une erreur :

Citation:

Echec à l'éxécution de la requête
The command contained one or more errors
Source : Microsoft OLE DB Provider for SQL Server, Description : Syntaxe incorrecte vers le mot clé 'WHERE'.
Source : Microsoft OLE DB Provider for SQL Server, Description : Syntaxe incorrecte vers le mot clé 'WHERE'.SQLSTATE : 42000, Native Error : 156 (0x9C), Error state : 1, Severity : 15
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 11h43   #8
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
Quelle est la version du SQL SERVER ?

Quelle est le type de la colonne GT ?

Que renvoie cette requête

Code :
1
2
3
4
5
 
SELECT  TOP 10 [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT = 1 
ORDER BY [MONTANT_NET_PROMO] DESC
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 12h32   #9
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 782
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 1 782
Points : 2 764
Points : 2 764
Tu peux probablement aussi t'en sortir avec une fonction d'agrégation et une CTE avec quelque chose comme ça :

Code :
1
2
3
4
5
6
7
 
WITH Categories AS(
SELECT Row_Number() over(partition BY [GT] DESC) AS NUM,  [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT IN (1 ,2,3,4,5,6,...)
)
SELECT * FROM Caegories WHERE NUM <= 10
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/01/2011, 13h29   #10
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par calagan99 Voir le message
Tu peux probablement aussi t'en sortir avec une fonction d'agrégation et une CTE avec quelque chose comme ça :

Code :
1
2
3
4
5
6
7
 
WITH Categories AS(
SELECT Row_Number() over(partition BY [GT] DESC) AS NUM,  [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT IN (1 ,2,3,4,5,6,...)
)
SELECT * FROM Caegories WHERE NUM <= 10
Je pense que tu as omis le ORDER BY dans ta requete :

Code :
1
2
3
4
5
6
7
 
WITH Categories AS(
SELECT Row_Number() over(partition BY [GT] ORDER BY [MONTANT_NET_PROMO] DESC) AS NUM,  [GT],[CODE_ARTICLE],[LIB_ARTICLE],[DOSSIER],[CNUF],[LIB_FOURN],[MONTANT_NET_PROMO]
FROM [dbo].[Regul_par_article]
WHERE GT IN (1 ,2,3,4,5,6,...)
)
SELECT * FROM Caegories WHERE NUM <= 10
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/01/2011, 14h04   #11
Candidat au titre de Membre du Club
 
Inscription : octobre 2008
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 30
Points : 10
Points : 10
Par défaut Merci

Merci le dernier code fonctionne et c'est exactement ce que je voulais .
henoch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 14h15   #12
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 782
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 1 782
Points : 2 764
Points : 2 764
Citation:
Envoyé par aieeeuuuuu Voir le message
Je pense que tu as omis le ORDER BY dans ta requete :
En effet, ça marchera beaucoup mieux comme cela. Petit oubli de ma part, mais l'idée était là
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h55.


 
 
 
 
Partenaires

Hébergement Web