לפניכם טבלת מכירות של חנות למכשירים סלולריים –
כתבו שאילתה אשר עבור לקוח מסויים מחזירה את כל הלקוחות אשר קנו את אותם מוצרים שהוא קנה או יותר. לדוגמא – אם בשאילתה התבקשנו לבצע בדיקה על יוסי, הלקוח שיחזור הוא תומר (תומר הוא היחיד אשר רכש את כל המכשירים של יוסי וגם מכשיר נוסף), אם בשאילתא התבקשנו לבצע בדיקה על משה, הלקוח שיחזור הוא רועי (רועי הוא היחיד שיש לו את כל המכשירים של משה וגם מכשיר נוסף).
CREATE TABLE [dbo].[sales]( [name] [varchar](25) , [product_name] [varchar](25) ) GO INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Yossi', N'Iphone6') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Yossi', N'Iphone6') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Yossi', N'Iphone5') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Yossi', N'Iphone4') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Moshe', N'Iphone6') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Moshe', N'Samsung Galaxy S5') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Tomer', N'Iphone6') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Tomer', N'Iphone5') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Tomer', N'Iphone4') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Tomer', N'Samsung Galaxy S4') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Roee', N'Samsung Galaxy S4') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Roee', N'Iphone4') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Roee', N'Samsung Galaxy S5') INSERT [dbo].[sales] ([name], [product_name]) VALUES (N'Roee', N'Iphone6')
SELECT DISTINCT S.name FROM sales s WHERE NOT EXISTS ( SELECT s1.product_name FROM sales s1 WHERE s1.name = 'Yossi' AND NOT EXISTS ( SELECT s3.product_name FROM sales s3 WHERE s3.name = s.name AND s3.name <> s1.name AND s3.product_name = s1.product_name ) )