Search code examples
sql-servercreate-table

Create Table As With


Im writing sql query and i have issue which i cannot fix.

I'm trying this:

CREATE TABLE a
AS
WITH cteCandidates (Miejscowosc, Ulica, NrDomu, KodPocztowy)
  AS
  (
    SELECT Miejscowosc, Ulica, NrDomu, KodPocztowy
    FROM Gimnazja
    INTERSECT
    SELECT Miejscowosc, Ulica, NrDomu, KodPocztowy
    FROM SzkolyPodstawowe
  )
 Select
  e.Lp as 'Gimnazja',
  s.Lp as 'Szkoly Podstawowe'
FROM
  Gimnazja AS e
  INNER JOIN cteCandidates AS c
    ON e.Miejscowosc = c.Miejscowosc AND e.Ulica = c.Ulica AND e.NrDomu = c.NrDomu AND e.KodPocztowy = c.KodPocztowy
  INNER JOIN SzkolyPodstawowe s
        ON s.Miejscowosc = e.Miejscowosc AND s.Ulica = e.Ulica AND s.NrDomu = e.NrDomu AND s.KodPocztowy = e.KodPocztowy
        Order By 'Gimnazja'

And errors which i get:

Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'AS'.
Msg 319, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.

And i don't know why. I think that my query is proper but clearly not, and i don't understand why.


Solution

  • Perhaps you want:

    WITH cteCandidates (...)
    SELECT
       e.Lp as 'Gimnazja',
       s.Lp as 'Szkoly Podstawowe'
    INTO a                          -- < -- table created here
    FROM
       Gimnazja AS e
       INNER JOIN ...;