תרגול זה מסתמך על מאגר הנתונים ACDB. לתרגולים נוספים בנושאים שונים ניתן להשתמש במדריך ה SQL.

1.      הציגו מתוך טבלת Customers  את שמם הפרטי, שם משפחתם, עירם ומדינתם של הלקוחות אשר נמצאים באותה מדינה כמו לקוח מספר 170

2.      הציגו מתוך טבלת Packagesאת מספר החבילת גלישה, מהירות חבילה הגלישה ומספר הסקטור עבור החבילות אשר מספר הסקטור שלהן שווה לזו של חבילה מספר 10

3.      הציגו מתוך טבלת Customers  את שמם הפרטי, שם משפחתם ותאריך הצטרפותם לחברה עבור הלקוחות אשר הצטרפו אחרי לקוח מספר 540

4.      הציגו מתוך טבלת Customers  את שמם הפרטי, שם משפחתם ותאריך הצטרפותם לחברה עבור הלקוחות אשר הצטרפו באותה שנה ואותו חודש של לקוח מספר 372

5.      הציגו מתוך טבלת Customers  את שמם הפרטי, שם משפחתם, עירם, מדינתם ומספר החבילה של הלקוחות אשר מהירות הגלישה שלהם היא 5Mbps

6.      הציגו מתוך טבלת Packages את מספר החבילת גלישה, מהירות חבילת הגלישה והתאריך בו היא פורסמה (strt_date)עבור החבילות אשר פורסמו באותה שנה של חבילה מספר 7

7.      הציגו מתוך טבלת Customers  את שמם הפרטי, סכום הנחה חודשית, מספר חבילה,  מס' טלפון ראשי ומס' טלפון משני עבור הלקוחות העסקיים

8.      הציגו מתוך טבלת Customers  את שמם הפרטי, סכום הנחה חודשית ומספר החבילה של הלקוחות אשר התשלום החודשי שלהם גדול מהתשלום החודשי הממוצע.

9.      הציגו מתוך טבלת Customers  את שמם הפרטי, עירם, מדינתם, תאריך לידתם וסכום ההנחה החודשית עבור הלקוחות אשר נולדו בתאריך של לקוח מס' 179 וגם סכום ההנחה החודשית שלהם גבוה מזה של לקוח מספר 107

10.   הציגו מתוך טבלת Packages את כל המידע על החבילות אשר מהירות גלישתן זהה לזו של חבילה מס' 30 וגם מחירן החודשי גבוה מזו של חבילה מס' 7

11.  הציגו מתוך טבלת Packages  את מספר החבילה, מהירות הגלישה, והתשלום החודשי עבור החבילות אשר מחירן גבוה יותר מהמחיר המקסימלי במהירות הגלישה 5Mbps

12.  הציגו מתוך טבלת Packages  את מספר החבילה, מהירות הגלישה, והתשלום החודשי עבור החבילות אשר מחירן גבוה יותר מהמחיר המינימלי במהירות הגלישה 5Mbps

13.  הציגו מתוך טבלת Packages  את מספר החבילה, מהירות הגלישה, והתשלום החודשי עבור החבילות אשר מחירן נמוך יותר מהמחיר המקסימלי במהירות הגלישה 5Mbps

14.  הציגו מתוך טבלת Customers  את שמם הפרטי, סכום הנחה חודשית ומספר החבילה של הלקוחות אשר סכום ההנחה החודשית שלהם נמוכה מהממוצע וגם נמצאים בחבילת גלישה בו נמצא אדם ששמו הפרטי הוא Kevin.

פתרונות

-- 1
SELECT first_name , last_name , state, city
FROM customers
WHERE state = (SELECT state FROM customers WHERE customer_id = 170)

-- 2
SELECT pack_id, speed , sector_id
FROM packages
WHERE sector_id = (SELECT sector_id FROM packages WHERE pack_id = 10)

-- 3
SELECT first_name , last_name , join_date
FROM customers
WHERE join_date > (SELECT join_date FROM customers WHERE customer_id = 540)

-- 4
SELECT first_name , last_name , join_date
FROM customers
WHERE year(join_date) = (SELECT year(join_date) FROM customers WHERE customer_id = 372)
AND
			month(join_date) = (SELECT month(join_date) FROM customers WHERE customer_id = 372)

-- 5
SELECT first_name , last_name , city , state, pack_id
FROM customers
WHERE pack_id IN (SELECT pack_id FROM packages WHERE speed = '5Mbps')

-- 6
SELECT pack_id , speed , strt_date
FROM packages
WHERE year(strt_date) = (SELECT year(strt_date) FROM packages WHERE pack_id =	7)

-- 7
SELECT first_name , monthly_discount , pack_id , main_phone_num ,
					secondary_phone_num
FROM customers
WHERE pack_id IN
			(SELECT pack_id
				FROM packages
				WHERE sector_id IN
						(	SELECT sector_id
							FROM sectors
							WHERE sector_name = 'Business'))

-- 8
SELECT first_name , monthly_discount, pack_id
FROM customers
WHERE pack_id IN
				 (	SELECT  pack_id
					FROM packages
					WHERE monthly_payment >
							 (	SELECT AVG(monthly_payment)
								FROM packages))

-- 9
SELECT customer_id , first_name , city , state ,birth_date , monthly_discount
FROM customers
WHERE birth_date =
			 (SELECT birth_date FROM customers WHERE customer_id = 179)
			  AND
			  monthly_discount >
				 (SELECT monthly_discount FROM customers WHERE customer_id = 107)

-- 10
SELECT *
FROM packages
WHERE speed =
		 (SELECT speed FROM packages WHERE pack_id = 30)
AND
			 monthly_payment >
			 (SELECT monthly_payment FROM packages WHERE pack_id = 7)

-- 11
SELECT pack_id ,speed , monthly_payment
FROM packages
WHERE monthly_payment
		> ALL(SELECT monthly_payment FROM packages WHERE speed = '5Mbps')

-- 12
SELECT pack_id ,speed , monthly_payment
FROM packages
WHERE monthly_payment >
		 ANY (SELECT monthly_payment FROM packages WHERE speed = '5Mbps')

-- 13
SELECT pack_id ,speed , monthly_payment
FROM packages
WHERE monthly_payment
		 < ANY (SELECT monthly_payment FROM packages WHERE speed = '5Mbps')

-- 14
SELECT first_name ,monthly_discount , pack_id
FROM customers
WHERE monthly_discount <
		(SELECT AVG(monthly_discount) FROM customers)
AND
			 pack_id IN
			 (SELECT pack_id FROM customers WHERE first_name = 'Kevin')

נכתב ע"י רם קדם