|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : décembre 2008 Messages : 5 ![]() |
Bonjour,
J'ai à ma disposition SQL Server 2000 ou 2005 et j'ai une petite question SQL : J'ai ce jeu de données : Code :
Code :
Pourriez-vous m'aider ? Merci beaucoup. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
SQL Server dispose des fonction analytiques (plus sûr si c'est déjà à partir de 2000 cela dit) : => Cela te permet de numéroter tes lignes selon un ordre défini pour chaque partition (groupe) Code :
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
||
|
00
|
|
|
#3 |
![]() ![]() |
À partir de 2005 pour les fonctions de fenêtrage chez SQL-Server.
Par contre, il manque la donnée qui permet de définir "les deux premiers". Dans l'exemple de pacmann, les données ont été triées par nom du client, mais dans l'exemple présenté ce n'est pas le cas. Il manque donc la colonne qui permettra d'effectuer ce tri, une date par exemple.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : décembre 2008 Messages : 5 ![]() |
Merci pour la rapidité de vos 2 réponses.
Pour Waldar, effectivement, pour simplifier l'exemple, j'ai trié les données comme je le voulais donc il n'y avait plus qu'à piocher dedans mais sur le principe, oui, il faut rajouter une 3ème colonne pour trier les clients. Pour pacmann, mon analyseur de requêtes SQL ne reconnaît pas la fonction row_number : 'row_number' n'est pas un nom de fonction reconnu. Je viens d'essayer avec la fonction IDENTITY(INT, 1, 1) mais cela numérote toute la table d'un coup sans faire de distinction par agence. Merci à vous. |
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Oui comme dit Waldar, la fonction n'est disponible qu'à partir de SQL Server 2005...
Tu peux faire un truc qui rame, du genre Code :
(tu peux alors changer la condition en Code :
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
||||
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2008 Messages : 5 ![]() |
Tu es au TOP pacmann, ça marche du feu de dieu ! =D
Merci à vous pour la rapidité. |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Pour ce type de requête, il vrai que la version 2005 apporte des améliorations non négligeables. Dans votre cas, un CROSS APPLY (disponible également depuis 2005) est tout indiqué : Code SQL :
Avec un index sur Client(id_agence, nom), cela peut donner des résultats très satisfaisants ! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com