Bonjour,

Dans mon problème, j'ai la table suivante :

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)
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
 
DECLARE @Category int;
SET @Category = 20000;
SELECT DISTINCT ca.AssetId
FROM CategoryAsset ca
WHERE ca.CategoryId=@Category;
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
 
DECLARE @Categories Table(Id int);
INSERT INTO @Categories(Id) VALUES(20000);
INSERT INTO @Categories(Id) VALUES(860000);
SELECT ???????????????????????????
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...

En bref, le résultat que je souhaite obtenir est l'équivalent de :
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
Sachant que je ne souhaite pas faire de la génération de code sql.

Merci