Bonjour,
Je me pose la question sur la façon de faire.
Voici mon problème, j'ai une table très mal conçue qui me donne l'utilisation pour une info.
Exemple cette info me sert pour une couleur de voiture, mais également pour la couleur d'un pare choc.
Voici la table
IdInfo Idutilision_0 Idutilision_1 Idutilision_2 1 5 12 1 2 11 1 12 3 12 1 15 4 5 1 2 5 12 1 2 6 11 1 2 7 15 1 2 8 5 1 NULL 9 5 1 NULL 10 8 1 NULL 11 1 2 NULL 12 1 2 NULL
Code SQL : 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 CREATE TABLE [dbo].[UtilisationInfo]( [IdInfo] [int] NOT NULL, [Idutilision_0] [int] NULL, [Idutilision_1] [int] NULL, [Idutilision_2] [int] NULL ) ON [PRIMARY] GO INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (1, 5, 12, 1) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (2, 11, 1, 12) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (3, 12, 1, 15) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (4, 5, 1, 2) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (5, 12, 1, 2) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (6, 11, 1, 2) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (7, 15, 1, 2) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (8, 5, 1, NULL) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (9, 5, 1, NULL) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (10, 8, 1, NULL) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (11, 1, 2, NULL) INSERT [dbo].[UtilisationInfo] ([IdInfo], [Idutilision_0], [Idutilision_1], [Idutilision_2]) VALUES (12, 1, 2, NULL)
Je veux trouver les lignes dont l'utilisation est 12 ou 15.
Je suis donc partie sur UNION
Ce qui me donne
ainsi j'obtiens bien ce dont j'ai besoin.
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 SELECT [IdInfo] , [Idutilision_0] , [Idutilision_1] , [Idutilision_2] FROM [dbo].[UtilisationInfo] WHERE [Idutilision_0] IN ( 12 , 15 ) UNION SELECT [IdInfo] , [Idutilision_0] , [Idutilision_1] , [Idutilision_2] FROM [dbo].[UtilisationInfo] WHERE [Idutilision_1] IN ( 12 , 15 ) UNION SELECT [IdInfo] , [Idutilision_0] , [Idutilision_1] , [Idutilision_2] FROM [dbo].[UtilisationInfo] WHERE [Idutilision_2] IN ( 12 , 15 )
Mais je me demande s'il n'y a pas un autre moyen.
Je connais déjà les premier retour sur la conception de la table, j'ai déjà fait toutes les remarques nécessaire moi même.
Mais partons de l'hypothèse que ce sont des contraintes non contournable.
Merci d'avance pour vos expériences.
Partager