2016-02-14 39 views
0

完全陌生的Oracle SQL,他这样说:串联 - 名字和姓同列(甲骨文SQL)

试图首先显示作者的名和姓在同一列的“作者”与一起该作者编写的书籍数量(按作者名字的升序排列)。

SELECT AUTHOR.FNAME || ' ' || AUTHOR.LNAME AS "Author", 
COUNT(BOOKAUTHOR.AUTHORID) AS "Books written" 
FROM BOOKS 
INNER JOIN BOOKAUTHOR ON BOOKS.ISBN = BOOKAUTHOR.ISBN 
INNER JOIN AUTHOR ON BOOKAUTHOR.AuthorID = AUTHOR.AuthorID 
ORDER BY AUTHOR.FNAME ASC 

并发似乎没有工作,并与整体查询有问题。

下面是与表:

书籍:ISBN,书名

作者:AUTHORID,LNAME,FNAME

BOOKAUTHOR:ISBN,AUTHORID

即使当我尝试使用SELECT和FROM做一个简单的连接时,它也不会显示一个y结果。

例如像:

SELECT FNAME || ' ' || LNAME "AUTHOR NAME" 
FROM AUTHOR 
+0

你肯定有你的作者表中的任何行?你用'AS'尝试第二个查询吗? – leeor

+0

其实第二个查询现在可以使用。看起来在运行了一段时间后,我的oracle会停止回复任何查询结果。我必须重新启动它,然后查询才能正常工作。 –

回答

0

试试这个:

SELECT CONCAT(CONCAT(AUTHOR.FNAME, ' '), 
     AUTHOR.LNAME) AS "AUTHOR" 
COUNT(BOOKAUTHOR.AUTHORID) AS "Books written" 
FROM BOOKS 
INNER JOIN BOOKAUTHOR ON BOOKS.ISBN = BOOKAUTHOR.ISBN 
INNER JOIN AUTHOR ON BOOKAUTHOR.AuthorID = AUTHOR.AuthorID 
ORDER BY AUTHOR.FNAME ASC