Je développe un site web de magasin. J'ai une table de base de données, ProductOption, qui représente les différentes options qui sont applicables à un produit (tailles, couleurs, etc.):Comment générer toutes les combinaisons de données possibles dans SQL?
ProductOptionId
ProductOptionGroupId
ProductId
Value
(j'ai simplifié ce par souci de concision)
liens ProductOptionGroupId à la table ProductOptionGroup; où un groupe est Taille, couleur etc, et la valeur est, bien, la valeur - Noir, Rouge, Grand, Petit etc.
je besoin de générer toutes les combinaisons possibles d'options de produits, restreint par groupe, pour chaque produit de la base de données. Imaginez les données suivantes pour le produit 1 (où le groupe 1 = couleur, 2 = Taille et 3 = Longueur):
ProductOptionId, ProductOptionGroupId, Value
1, 1, Red
2, 1, Black
3, 1, Green
4, 2, Large
5, 2, Small
6, 3, Long
7, 3, Short
je besoin de générer des données représentant les suivantes:
Red, Large, Long
Black, Large, Long
Green, Large, Long
Red, Small, Long
Black, Small, Long
Green, Small, Long
Red, Large, Short
Black, Large, Short
Green, Large, Short
Red, Small, Short
Black, Small, Short
Green, Small, Short
.. .basiquement toutes les combinaisons possibles, au sein des groupes.
Il peut y avoir un nombre quelconque de groupes et un nombre illimité d'options de produits pour chaque produit. Je dois être en mesure de générer les résultats en ne connaissant le produit que par avance (c'est-à-dire en me donnant toutes les combinaisons d'options de produits pour ce produit).
Comment puis-je y parvenir en utilisant SQL Server 2005?
Merci
Avez-vous besoin du résultat en trois colonnes? –
Pas spécifiquement. J'ai juste besoin d'un moyen de retourner toutes les combinaisons d'options de produits pour un produit donné. Une rangée par option est bien, mais il faudrait que je puisse regrouper les combinaisons. –
utiliser une jointure croisée – Andrew