Bonjour

Je suis confronté à un souci de conception, je pense. Je tourne en rond depuis trois jours dessus et je deviens un peu chèvre.

Alors, je vais commencé par rpésenter ma structure de données. Pour des raisons de commodité de mon développement de site, j'ai pris le parti de stocker mes données utilisateur de manière verticale. Cela me donne l'élasticité dont j'ai besoins pour gérer les choses. Ma table est donc composée d'un identifiant de ligne, d'un identifiant d'utilisateur, d'un identifiant de donnée et de la donne elle même (je mets un script de création et de remplissage de table plus loin).

D'autres informations sur l'utilisateur sont stockées dans une autre table appartenant au MemberShip du FrameWork .NET de Microsoft. Le lien entre les tables se fait sur l'Identifiant au format UNIQUEIDENTIFIER.

Maintenant je voudrais pouvoir faire une requête qui me permet de remonter mes données selon des critères pris dans les valeurs stockées. Mon problème se situe sur le cumul des critères que je n'arrive pas à faire et je comprends pas pourquoi. Voici ma requête actuelle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
DECLARE @CurrentUser UNIQUEIDENTIFIER, @ApplicationId UNIQUEIDENTIFIER
SET @CurrentUser = '20174440-EFB5-4C81-9449-C0999B0636B3'
SET @ApplicationId = '6723d757-bb46-4bd1-91bd-a06d3e924373'
 
SELECT U.UserId, CreateDate, U.UserName
FROM dbo.aspnet_Users U  
INNER JOIN dbo.aspnet_Membership M ON M.UserId = U.UserId AND U.ApplicationId = @ApplicationId
INNER JOIN (SELECT UserId, Valeur_Info AS Valeur_Info FROM dbo.SITE_Information_Membre 
	WHERE Id_Info_Formulaire = 1 AND Valeur_Info = '1') IM1 ON IM1.UserId = U.UserId
INNER JOIN (SELECT UserId, ISNULL(Valeur_Info,'') AS Valeur_Info FROM dbo.SITE_Information_Membre 
	WHERE Id_Info_Formulaire = 2 AND Valeur_Info = '4') IM2 ON IM2.UserId = U.UserId
WHERE U.UserID <> @CurrentUser
Dans l'exemple de remplissage de la table dbo.SITE_Information_Membre vous verrez que cette requête doit me remonter une ligne alors qu'elle ne m'en remonte aucune alors que si je ne mets que la jointure avc IM1 elle me remonte bien la ligne voulue.

Pouvez vous m'aider ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[SITE_Information_Membre](
	[Id_Info_Membre] [int] IDENTITY(1,1) NOT NULL,
	[UserId] [uniqueidentifier] NOT NULL,
	[Id_Info_Formulaire] [int] NULL CONSTRAINT [DF_SITE_Information_Membre_Id_Info_Formulaire]  DEFAULT ((0)),
	[Valeur_Info] [varchar](1000) NULL CONSTRAINT [DF_SITE_Information_Membre_Valeur_Info]  DEFAULT (''),
 CONSTRAINT [PK_SITE_Information_Membre] PRIMARY KEY CLUSTERED 
(
	[Id_Info_Membre] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
 
GO
SET ANSI_PADDING OFF
 
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,1,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,2,3)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,3,Muzillac)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,18,19)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,4,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,5,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,6,0)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,7,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,8,)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,9,Ma description)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,1,2)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,2,4)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,3,Cherbourg)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,18,19)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,4,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,5,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,6,0)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,7,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,8,1,2,3)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,9,Ma description)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,10,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,11,3)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,19,18!46)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,12,NANTES)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,13,1!1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,14,1!1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,15,1,2)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,16,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (85876808-9221-4B97-956C-26B0F06568A6,17,1,4,5)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,1,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,2,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,3,Pontivy)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,18,34)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,4,30)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,5,29)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,6,0)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,7,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,8,)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (EDD89C6C-5F63-4EC0-97EC-99D582527164,9,Ma description)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,10,2)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,11,1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,19,18!25)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,12,Sa ville)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,13,1!1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,14,1!1)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,15,)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,16,)
INSERT INTO [siteglobal].[dbo].[SITE_Information_Membre]             ([UserId]        ,[Id_Info_Formulaire]        ,[Valeur_Info])       VALUES             (20174440-EFB5-4C81-9449-C0999B0636B3,17,)