-1

我有一个名为“Library”的数据库,其中的表名为“Medien”。其中有多个列,我需要查询以下名为 Fname、Mname、Lname 和 ISBN 的列。

我想用 ISBN 和没有 ISBN 计算数据库总记录?

  • Fname = 作者的名字
  • Mname = 作者的中间名
  • Lname = 作者的姓氏

我想计算 ISBN 有多少条记录,没有 ISBN 有多少条记录?

我已执行以下命令

 Select COUNT(ISBN) as Fname FROM  `library`.`MEDIEN` where  Fname = `isbn`;
 Select COUNT(ISBN) as Mname FROM  `library`.`MEDIEN` where  Mname = `isbn`;
 Select COUNT(ISBN) as Lname FROM  `library`.`MEDIEN` where  Lname = `isbn`;
 Select COUNT(ISBN) as NtFname FROM `library`.`MEDIEN`where  Fname != `isbn`;
 Select COUNT(ISBN) as NtMname FROM `library`.`MEDIEN`where  Mname != `isbn`;
 Select COUNT(ISBN) as NtLname FROM `library`.`MEDIEN`where  Lname != `isbn`;

我不确定我是否执行了正确的命令。因为某些 ISBN 记录分别只有 Fname,Mname 或 Fname,Lname 或 Mname,Lname 或 Fname , Lname,Mname。

例如

第一作者

Fname: asher Lname: baig

写了 5 本书的记录,但其中两个是 ISBN,所以

总输出为 ISBN = 2

愿望输出会是这样的

ISBN=value and NtISBN=value

请帮我解决这个问题

4

2 回答 2

0

您可能只想使用两个带有 OR 子句的查询。这将避免某些行被计算两次:

Select COUNT(ISBN) as count FROM library.MEDIEN where
 verf1 = 'isbn'
 OR verf2 = 'isbn'
 OR verf3 = 'isbn';

然后当然是相反的:

Select COUNT(ISBN) as count FROM library.MEDIEN where verf1 != 'isbn'
   AND verf2 != 'isbn'
   AND verf3 != 'isbn';
于 2012-11-05T17:01:52.320 回答
0

你能试试这个查询吗

SELECT SUM (CASE WHEN (verf1 = 'isbn' OR verf2 = 'isbn' OR verf3 = 'isbn') THEN 1 ELSE 0 END ) ISBNCount
        SUM (CASE WHEN (verf1 = 'isbn' OR verf2 = 'isbn' OR verf3 = 'isbn') THEN 0 ELSE 1 END ) NtISBNC 
         FROM library.MEDIEN
于 2018-12-19T15:35:47.487 回答