Bonjour,
Dans mon problème, j'ai la table suivante :
Si je veux obtenir la liste des AssetId correspondant à une Catégorie donnée je procède ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE [dbo].[CategoryAsset] ( CategoryId int NOT NULL, AssetId int NOT NULL ) ALTER TABLE [dbo].[CategoryAsset] ADD CONSTRAINT [PK_CategoryAsset] PRIMARY KEY (CategoryId, AssetId)
Maintenant je souhaite avoir la liste des AssetId correspondant à plusieurs Catégories :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DECLARE @Category int; SET @Category = 20000; SELECT DISTINCT ca.AssetId FROM CategoryAsset ca WHERE ca.CategoryId=@Category;
C'est ici que je bloque. J'ai besoin de faire une requête select qui me donne l'intersection des AssetId ayant les categoryId contenus dans ma variable @Categories...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DECLARE @Categories Table(Id int); INSERT INTO @Categories(Id) VALUES(20000); INSERT INTO @Categories(Id) VALUES(860000); SELECT ???????????????????????????
En bref, le résultat que je souhaite obtenir est l'équivalent de :
Sachant que je ne souhaite pas faire de la génération de code sql.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT DISTINCT ca.AssetId FROM CategoryAsset ca WHERE ca.CategoryId=20000 INTERSECT SELECT DISTINCT ca.AssetId FROM CategoryAsset ca WHERE ca.CategoryId=860000
Merci
Partager