Используя MS Access, у меня есть две таблицы, одна - категории, а другая - содержимое.
Мой начальный оператор SQL, приведенный ниже, берет счетчик каждого контента, связанного с категорией, и возвращает счетчик, связанный с ним.с каждой категорией.
Так что для каждой КАТЕГОРИИ я просто пытаюсь вернуть еще один счетчик, в котором я подсчитываю КОНТЕНТ, который имеет определенный уровень пользователя и не удаляется для каждой КАТЕГОРИИ.
Нижеэто то, с чем я борюсь, поскольку я не уверен, что вы действительно можете использовать COUNT следующим образом.
COUNT(IIf([CONTENT.isDeleted]=0,1,0)) - COUNT(IIf([CONTENT.userLevel]=2)) AS userLevelCount
Это полный оператор выбора с моим добавлением, но он не работает.
SELECT
CATEGORY.categoryId,
CATEGORY.categoryTitle,
CATEGORY.categoryDate,
CATEGORY.userLevel,
Last(CONTENT.contentDate) AS contentDate,
CATEGORY.isDeleted AS categoryDeleted,
COUNT(IIf([CONTENT.isDeleted]=0,1,0)) AS countTotal,
COUNT(IIf([CONTENT.isDeleted]=1,[CONTENT.contentID],Null)) AS countDeleted,
COUNT([CONTENT.categoryId]) - COUNT(IIf([CONTENT.isDeleted]=1,[CONTENT.contentID],Null))AS countDifference,
COUNT(IIf([CONTENT.isDeleted]=0,1,0)) - COUNT(IIf([CONTENT.userLevel]=2)) AS userLevelCount
FROM CATEGORY
LEFT JOIN CONTENT ON
CATEGORY.categoryId = CONTENT.categoryId
GROUP BY
CATEGORY.categoryId,
CATEGORY.categoryTitle,
CATEGORY.categoryDate,
CATEGORY.userLevel,
CATEGORY.isDeleted
HAVING (((CATEGORY.isDeleted)=0))
ORDER BY
CATEGORY.categoryTitle