CTE สำหรับตำแหน่ง IT ที่มีเงินเดือนสูง
ในแบบฝึกหัดก่อนหน้า คุณได้สร้าง CTE เพื่อค้นหาตำแหน่งงานด้าน IT แล้ว คราวนี้จะนำผลลัพธ์นั้นมารวมกับ CTE อีกตัวจากตาราง salary โดยใช้การกำหนด CTE หลายรายการในคิวรีเดียว สังเกตว่าใช้เครื่องหมายคอมมาในการแยกนิยามคิวรีของแต่ละ CTE ตาราง salary มีข้อมูลเพิ่มเติมเกี่ยวกับ ID และ salary ของพนักงาน โจทย์คือให้สร้าง CTE ตัวที่สองชื่อ ITsalary แล้ว JOIN ทั้งสอง CTE เข้าด้วยกันโดยใช้ ID ของพนักงาน การ JOIN ควรเลือกเฉพาะระเบียนที่มีค่าตรงกันในทั้งสองตาราง และสุดท้ายให้กรองเฉพาะพนักงานที่มีเงินเดือนมากกว่า 3000
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Hierarchical and Recursive Queries in SQL Server
คำแนะนำการฝึกหัด
- กำหนด CTE ตัวที่สองชื่อ
ITsalaryพร้อมระบุฟิลด์IDและSalary - กรองเฉพาะเงินเดือนที่มากกว่า
3000 - รวม CTE ทั้งสองเข้าด้วยกันโดยใช้
JOINบนฟิลด์IDที่ตรงกัน แล้วเลือกชื่อ เงินเดือน และตำแหน่งของพนักงานที่ผ่านเงื่อนไข
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
WITH ITjobs (ID, Name, Position) AS (
SELECT
ID,
Name,
Position
FROM employee
WHERE Position like 'IT%'),
-- Define the second CTE table ITsalary with the fields ID and Salary
___ (___, ___) AS (
SELECT
ID,
Salary
FROM Salary
-- Find salaries above 3000
WHERE ___ ___ 3000)
SELECT
ITjobs.NAME,
ITjobs.POSITION,
ITsalary.Salary
FROM ITjobs
-- Combine the two CTE tables the correct join variant
___ ___ ITsalary
-- Execute the join on the ID of the tables
ON ITjobs.ID = ITsalary.ID;