|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 41 ![]() |
Bonjour,
J'ai un fichier d'articles dont une des colonnes correspond à la quantité d'articles. Est-il possible et comment procéder pour obtenir une vue qui me duplique les articles en fonction de leur quantité respective par une requête SQL ? (l'objectif est d'éditer des étiquettes.) Merci. |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Pour l'avoir déja fait ... il vous faut une table de nombre supplémentaire pour réaliser cela.
Code :
|
||
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
à partir de la version 2005, avec une CTE recursive :
Code SQL :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Effectivement j'ai pensé à la méthode des CTE récursives mais je pense que si le nombre de lignes à traiter est important la méthode non récursive sera moins performante vu que l'on force un traitement ligne à ligne ... Après les performances ne sont pas forcément un problème dans ce contexte.
A voir ++ |
|
00
|
|
|
#5 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
oui c'est vrai.
A tester en effet, l'idée étant d'avoir tout ça en une seule requête. mais un mix des deux serait : Code SQL :
Niveau perf, ça doit commencer à être pas mal |
||
|
|
00
|
|
|
#6 | |||||
![]() ![]() ![]() |
Citation:
Code :
__________________
Découvrez la FAQ de MS SQL Server. La chance accorde ses faveurs aux esprits avertis ! |
|||||
|
|
00
|
|
|
#7 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Vous chipotez les gars là
La table number ne sera générée qu'une seule fois ici et sera utilisée par la suite pour dupliquer les lignes de la table cible. C'est juste une table de travail. Mais tu as raison tant qu'à faire allons y jusqu'au bout : Je propose encore plus simple pour créer la table des nombres : Code :
|
||
|
00
|
|
|
#8 |
![]() ![]() ![]() |
Mikedavem, j'applique juste la théorie de Goering :
Il est mieux de faire de la pub sur les bonnes manières afin que tout le monde s'y habitue même s'ils vont le comprendre plus tard. Par exemple je ne connaissais pas ta méthode plutôt très simple.
__________________
Découvrez la FAQ de MS SQL Server. La chance accorde ses faveurs aux esprits avertis ! |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() |
Personnellement je créerais la table de nombre et éviterez de faire des traitements répétitif inutile, qui plus est récursif...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 669 ![]() |
Au passage, CROSS JOIN, en terme de performances, c'est pas terrible ...
![]() @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#11 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Elsuket je t'ai rien d....................
![]() ++ |
|
00
|
|
|
#12 |
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
|
|
|
00
|
|
|
#13 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
Code SQL :
|
|||
|
|
00
|
|
|
#14 |
![]() ![]() ![]() |
Tu sais bien que c'est discutable et que nous n'allons pas nous affronter pour cela.
__________________
Découvrez la FAQ de MS SQL Server. La chance accorde ses faveurs aux esprits avertis ! |
|
|
00
|
|
|
#15 |
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com