我有一个名为&#34的数据库;图书馆"表格名为" Medien"。 在其中有多列我需要查询以下名为Fname,Mname,Lname和ISBN的coloumn。
我想用ISBN和没有ISBN来计算数据库总记录?
我想算一下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
请帮我解决这个问题
答案 0 :(得分: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';
答案 1 :(得分: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