Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:靠近第1行:靠近;(“语法错误”:尝试创建视图时发生SQLite错误_Sql_Sqlite_Syntax Error - Fatal编程技术网

错误:靠近第1行:靠近;(“语法错误”:尝试创建视图时发生SQLite错误

错误:靠近第1行:靠近;(“语法错误”:尝试创建视图时发生SQLite错误,sql,sqlite,syntax-error,Sql,Sqlite,Syntax Error,我正在尝试在SQLite中创建视图,但显然存在语法错误,我不确定它是什么。以下是查询: CREATE VIEW personDetails(fname, lname, bdate, bplace, carsowned,ticketsRcvd) AS SELECT p.fname,p.lname,p.bdate,p.bplace,COUNT(DISTINCT(r.vin)),COUNT(DISTINCT(t.violation)) FROM persons p LEFT JOIN registra

我正在尝试在SQLite中创建视图,但显然存在语法错误,我不确定它是什么。以下是查询:

CREATE VIEW personDetails(fname, lname, bdate, bplace, carsowned,ticketsRcvd) AS
SELECT p.fname,p.lname,p.bdate,p.bplace,COUNT(DISTINCT(r.vin)),COUNT(DISTINCT(t.violation))
FROM persons p LEFT JOIN registrations r ON p.fname = r.fname
LEFT JOIN tickets t ON r.regno = t.regno
GROUP BY p.fname,p.lname, p.bdate,p.bplace;

您的视图创建没有问题。但在创建新视图之前,最好先删除视图

DROP VIEW IF EXISTS [personDetails]; 
CREATE VIEW [personDetails](fname, lname, bdate, bplace, carsowned,ticketsRcvd) AS
SELECT p.fname,p.lname,p.bdate,p.bplace,COUNT(DISTINCT(coalesce(r.vin, 0))),COUNT(DISTINCT(coalesce(t.violation, 0)))
FROM persons p 
LEFT JOIN registrations r ON p.fname = r.fname
LEFT JOIN tickets t ON r.regno = t.regno
GROUP BY p.fname,p.lname, p.bdate,p.bplace;

这可能更像是一个注释,而不是一个答案,但格式本身并不适合注释

我想试试这个:

CREATE VIEW personDetails
AS
SELECT p.fname, p.lname, p.bdate, p.bplace,
   COUNT(DISTINCT r.vin) carsowned, COUNT(DISTINCT t.violation) ticketsRcvd
FROM persons p
LEFT JOIN registrations r
   ON p.fname = r.fname
   AND p.lname = r.lname
LEFT JOIN tickets t ON r.regno = t.regno
GROUP BY p.fname, p.lname, p.bdate, p.bplace;

请尝试
COUNT(DISTINCT r.vin),COUNT(DISTINCT t.invalition)
,不带括号。为什么注册是基于名字加入的?
在p.fname=r.fname上左加入注册r
@GMB抱歉,不是这样,我甚至不知道会出什么问题@ᴇᴛᴀʟ因为这是我唯一可以连接它的东西,还有一个姓氏,但我不确定如何基于两个元素指定连接。事实上,您的视图没有问题,我怀疑可能是您使用了错误的列。仍然不起作用,我认为它与语法无关或drop视图。我会看看是否可以使用其他列,感谢h麋鹿though@c3688014,您的sqlite版本似乎是3.8。