เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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;
แก้ไขและรันโค้ด