Expecting EDGE_TYPE or ID. Microsoft SQL Server MS



所以,这是我在以下错误中寻求帮助的代码:

"("附近的语法不正确。期待EDGE_TYPE或 ID。

以下数据库是UNI的项目,我需要在其中创建一个汽车/车主数据库。 我在/* CERINTA 4/中使用的相同型号可以用于发生错误的/CERINTA 5 */吗?

CREATE DATABASE munteanu_db_prob3;
/*CERINTA 1*/
/*IMPLEMENTARE BAZA DATE*/
CREATE TABLE vehicul(NR_VEHICUL INT NOT NULL IDENTITY, MARCA VARCHAR(12), TIP VARCHAR(12), SERIE VARCHAR(16), CULOARE VARCHAR(12), CAPACITATE_CIL INT, PRIMARY KEY(NR_VEHICUL));
CREATE TABLE persoana(NR_PERSOANA INT NOT NULL IDENTITY, SERIE_BUL VARCHAR(2), NR_BUL VARCHAR(6), ADRESA VARCHAR(20), PRIMARY KEY(NR_PERSOANA));
CREATE TABLE proprietate(ID INT NOT NULL IDENTITY, PERSOANA_ID INT,  NR_VEHICUL INT, DATA_CUMPARARII DATETIME default CURRENT_TIMESTAMP, PRET FLOAT, PRIMARY KEY(ID),
FOREIGN KEY(NR_VEHICUL) REFERENCES vehicul(NR_VEHICUL), FOREIGN KEY(PERSOANA_ID) REFERENCES persoana(NR_PERSOANA));
/*INSTANTIERE BAZA DATE*/
INSERT INTO vehicul(MARCA, TIP,SERIE,CULOARE,CAPACITATE_CIL)
VALUES ('VOLKSWAGEN', 'HATCHBACK', '3333333333333x00', 'VISINIU', 1967),
('AUDI', 'HATCHBACK', '3333333333333x01', 'GRI', 1967),
('BMW', 'HOTHATCH', '3333333333333x02', 'NEGRU', 2180),
('OPEL', 'COUPE', '3333333333333x03', 'NEGRU', 1669), 
('FORD', 'BREAK', '3333333333333x04', 'ALB', 1556),
('SUZUKI','CROSSOVER', '3333333333333x05','ALB', 1578),
('DACIA', 'SEDAN', '3333333333333x06','ALBASTRU', 1396),
('MERCEDES','SEDAN', '3333333333333x07', 'NEGRU', 2167);
INSERT INTO persoana(SERIE_BUL, NR_BUL, ADRESA)
VALUES ('DX', '432514', 'Strada Dreptatii NR 01'), 
('DZ', '532435', 'Strada Academiei NR 02'),
('BZ', '634344', 'Strada Romania Muncitoare NR 03'),
('BV', '123475', 'Strada Muntilor NR 99'),
('DX', '352443', 'Bulevardul Dezrobirii NR 01');
INSERT INTO proprietate(PERSOANA_ID, NR_VEHICUL, PRET)
VALUES (1, 1, 10.000),
(2, 4, 25.000),
(3, 5, 125.000),
(5, 2, 14.000),
(1, 7, 90.000),
(4,1,15.000),
(1,6, 4.000);
/*CERINTA 2*/
/*DET. NUMARUL DE CULORI*/
SELECT COUNT(DISTINCT CULOARE) FROM vehicul;
/*DET. NUMARUL DE MASINI DE FIECARE CULOARE*/
SELECT CULOARE, COUNT(CULOARE) FROM vehicul GROUP BY CULOARE;

/*CERINTA 3*/
/*DET. MARCI MASINI*/
SELECT DISTINCT MARCA FROM vehicul;
/*DET. NR. VEHICULE DE FIECARE MARCA*/
SELECT MARCA, COUNT(MARCA) FROM vehicul GROUP BY MARCA;

/*CERINTA 4*/
/*PROCEDURA CALCUL NR. MASINI*/
/*PROCEDURA CALCUL PRET MEDIU MASINI CULOARE NEAGRA*/
/*(AVERAGE)pret de culoare*/
SELECT COUNT(vehicul.NR_VEHICUL), AVG(proprietate.PRET)
FROM vehicul, proprietate
WHERE vehicul.NR_VEHICUL = proprietate.NR_VEHICUL and culoare='Negru'
GROUP BY vehicul.CULOARE;

/*CERINTA 5*/
CREATE TABLE prop2veh AS(SELECT proprietate.PERSOANA_ID, proprietate.NR_VEHICUL
FROM proprietate
INNER JOIN vehicul ON proprietate.NR_VEHICUL=vehicul.NR_VEHICUL);

SELECT PERSOANA_ID, Count(*) As total FROM prop2veh Group By PERSOANA_ID Having Count(*) > 2

我认为你想多了。您的查询将如此简单。

SELECT p.PERSOANA_ID
, MyCount = count(*)
FROM proprietate p 
INNER JOIN vehicul v ON p.NR_VEHICUL = v.NR_VEHICUL
group by p.PERSOANA_ID
hacing count(*) > 2

CREATE TABLE prop2veh AS (SELECT...不是正确的 TSQL 语法。

正确的方法是SELECT {column list} INTO prop2veh FROM {Table(s)}

最新更新