J'ai besoin de construire une liste à partir de quelques tables et je n'arrive pas à trouver comment la construire.Construire des listes en sql
J'ai une table avec des modèles de vélo et une table de produits:
vélos
modelno, franchise, description, year,profile
"1","kawasaki","ninja","2009","1-2009"
"2","honda","cbr600","2006","2-2006"
produits
productid, category, profile,
"1","carburettor",",1-2009,",
"2","Generic Gear Lever",",1-2009,2-2006,"
le champ de profil contient une liste délimitée par des virgules de tous les véhicules de la pièce.
je peux obtenir une liste de travailler pour un véhicule en utilisant:
SELECT
(SELECT Franchise + ' ' +
description + ' ' +
year as model from bikes where profile = @model + '-' +
@year
)
as model, catalogueref, tier2
FROM products
WHERE profile LIKE '%,' + @model + '-' + @year + ',%'`
qui me donne:
bike, lever, sprocket, etc...
kawasaki 250 2009, 123456,234567, etc...
Cependant, je dois remplir cette fonction sur environ 8000 modèles, et vous plutôt ne pas avoir à faire chacun individuellement. Y a-t-il un moyen de faire en sorte qu'il prenne une liste de profils?
Quel SGBD? En MySQL vous avez la fonction'group_concat() '. –
J'utilise Microsoft SQL 2005 – DPERROTT
* "champ de profil contient une liste délimitée par des virgules de tous les véhicules de la partie" * - Ceci est une décision de conception vraiment mauvaise. Si vous en avez l'occasion, changez-le avant de faire quoi que ce soit d'autre. – Tomalak