Набор результатов JSP из MS Access - как получить имя местоположения? - PullRequest
1 голос
/ 19 июля 2009

У меня есть таблица с именем "form" в ms доступ, которая имеет следующие поля: Formno, местоположение, статус.

Я хочу создать отчет, который рассчитывает:

  1. общее количество форм (столбцов) в каждом местоположении
  2. общее количество форм (столбцов) со статусом "в ожидании" в каждом месте

Я пытался сделать это с помощью этого запроса:

select count(formno) as totalforms
from form
group by location;

select count(formno) as pendingforms
from form
group by location
WHERE status = 'pending';

Ответы [ 3 ]

0 голосов
/ 19 июля 2009

Второй SQL-оператор содержит предложение Where в неправильном месте. Это должно выглядеть так:

SELECT Count(form.formno) AS CountOfformno, form.location
FROM form
GROUP BY form.location, form.status
HAVING (((form.status)='pending'));

SELECT Count(form.formno) AS CountOfformno, form.location
FROM form
WHERE (((form.status)='pending'))
GROUP BY form.location;

В основном, если вы хотите сгруппировать по столбцу и установить для него критерии, используйте пункт «Имея». Предложение Where следует перед предложением group by.

Чтобы изучить синтаксис SQL, вам может оказаться проще сначала использовать таблицу запросов по дизайну (в режиме конструктора), а затем перейти к представлению SQL после того, как вы получите нужные результаты в представлении таблицы.

0 голосов
/ 20 июля 2009

Форма является зарезервированным словом и должна быть заключена в квадратные скобки: http://support.microsoft.com/kb/286335. Я бы предложил переименовать таблицу, потому что она будет продолжать вызывать проблемы.

select location,count(formno) as totalforms
from [form]
group by location

select location, count(formno) as pendingforms
from [form]
WHERE status = 'pending'
group by location

Обратите внимание, что count (*) также можно использовать, если вы хотите включить все записи в таблицу: В SQL есть разница между count (*) и count ()

0 голосов
/ 19 июля 2009
SELECT Location, COUNT(FormNo) AS TotalForms, 
SUM(IIF(status = "pending", 1, 0)) AS Pending
FROM FORM GROUP BY Location

Помогает ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...