Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CREATE VIEW syntax for WITH AS (SELECT) statements

SQL Server: I have the following working SQL statement:

WITH required_skills AS
(
    SELECT DISTINCT 
        e.empl_ID, e.job_code, j.skill_ID, j.skill_desc
    FROM 
        emplskills e
    JOIN 
        jobskills j ON e.job_code = j.job_code
)
SELECT 
    r.empl_ID, e.emplName, r.job_code, r.skill_ID, r.skill_desc
FROM
    required_skills r
FULL OUTER JOIN 
    emplskills e ON r.empl_ID = e.empl_ID
                 AND r.skill_ID = e.skill_ID;

I would like to convert the output of this statement to a view. I thought I could just do this:

CREATE VIEW MY_VIEW 
AS
    (WITH required_skills AS
     (
         SELECT DISTINCT 
             e.empl_ID, e.job_code, j.skill_ID, j.skill_desc
         FROM 
             emplskills e
         JOIN 
             jobskills j ON e.job_code = j.job_code
     )
     SELECT 
         r.empl_ID, e.emplName, r.job_code, r.skill_ID, r.skill_desc
     FROM 
         required_skills r
     FULL OUTER JOIN 
         emplskills e ON r.empl_ID = e.empl_ID AND r.skill_ID = e.skill_ID
);

But it errors out with this :

Incorrect syntax near 'WITH'

Can someone help please?

TIA, John

like image 382
John Joseph Avatar asked Dec 03 '25 23:12

John Joseph


1 Answers

Remove the parenthesis after AS.

CREATE VIEW MyViewName
AS
WITH required_skills as (
      SELECT DISTINCT e.empl_ID, e.job_code, j.skill_ID, j.skill_desc
     FROM emplskills e
     JOIN jobskills j
       ON e.job_code = j.job_code
)
SELECT r.empl_ID, e.emplName, r.job_code, r.skill_ID, r.skill_desc
  FROM required_skills r
       FULL OUTER JOIN emplskills e
       ON r.empl_ID = e.empl_ID
      AND r.skill_ID = e.skill_ID
like image 158
pmbAustin Avatar answered Dec 06 '25 15:12

pmbAustin