#sql #sql-server #tsql #count #sum
Вопрос:
select sum(bookID) as totalbooks, count(bookstatus = R) as returnedbooks
from library with (nolock)
where
librarylocation = 'Chesterfield'
--and bookstatus = R
Поэтому я хочу, чтобы мой запрос возвращал общее количество книг в виде столбца, но сколько книг возвращается в виде столбца. Я использую счетчик, также применяя условие, но я получаю сообщение об ошибке:
Неправильный синтаксис рядом с»)».
В любом случае, чтобы достичь этого?
Комментарии:
1. Перестаньте разбрызгивать свой код с помощью nolock
Ответ №1:
Вот синтаксическая ошибка count(bookstatus = R)
Вы можете конвертировать его, как показано ниже
select sum(bookID) as totalbooks, SUM(CASE WHEN bookstatus = R THEN 1 ELSE 0 END) as returnedbooks
from library with (nolock)
where librarylocation = 'Chesterfield'
--and bookstatus = R
Комментарии:
1.
... SUM(bookID) as totalbooks
или... COUNT(bookID) as totalbooks
?2.
SUM(1)
эквивалентноCOUNT
, обе работы