powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подставить в таблицу количество записей с пустой датой
17 сообщений из 17, страница 1 из 1
Подставить в таблицу количество записей с пустой датой
    #39505277
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблицу категорий выбираю категории и количество записей таблицы дел с пустой датой в каждой категории.
Всё работает, но если таковых записей нет, то категория не выводится вообще.
А нужно, чтобы в таких случаях у категории стоял "ноль".
Делаю так:
Код: pascal
1.
2.
3.
4.
SELECT kats.N,kats.kat,COUNT(tasks.N) AS itog FROM tasks
LEFT JOIN kats ON kats.N=tasks.kat
WHERE tasks.date2 IS NULL
GROUP BY kats.N,kats.kat


При таком запросе напротив каждой категории указано, сколько по ней есть записей с пустой датой.
Но те категории, по которым нет ни одной записи с пустыми датами, не попадают в выборку.
Как сделать, чтобы попадали, подскажите, пожалуйста.
Делаю на Делфи с базой mdb.
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505355
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Измените порядок связывания таблиц:
Код: sql
1.
2.
FROM kats
LEFT JOIN tasks
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505367
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaИзмените порядок связывания таблиц:
Код: sql
1.
2.
FROM kats
LEFT JOIN tasks


Так в выборку попадает общее число записей в каждой категории, а нужно число строк у которых есть пустая дата.
Если я в самом низу добавляю условие:
Код: pascal
1.
where tasks.date2 is null


то категории, по которым нет пустых дат не попадают в выборку.
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505380
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fratoТак в выборку попадает общее число записей в каждой категории, а нужно число строк у которых есть пустая дата.Предполагалось, что будет изменена только секция FROM, а другие секции, в т.ч. и WHERE, не будут затронуты.
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505401
Код: sql
1.
2.
3.
SELECT kats.N,kats.kat, SUM(IIF(tasks.date2 IS NULL, 1, 0)) AS itog FROM tasks
LEFT JOIN kats ON kats.N=tasks.kat
GROUP BY kats.N,kats.kat
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505429
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ) , Вот какой смысл оставлять tasks слева, если по ней считается ТОЛЬКО количество?
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505448
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде то, что нужно, по идее должно работать.
Но в моём случае вызвало ошибку: Syntax error in From clause.
Буду копать, экспериментировать.
Спасибо!
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505461
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina Анатолий ( Киев ) , Вот какой смысл оставлять tasks слева, если по ней считается ТОЛЬКО количество?
А как бы Вы предложили?
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505464
Akina Анатолий ( Киев ) , Вот какой смысл оставлять tasks слева, если по ней считается ТОЛЬКО количество? Согласен. Я туда и не глянул.
Код: sql
1.
2.
3.
SELECT kats.N,kats.kat, SUM(IIF(tasks.date2 IS NULL, 1, 0)) AS itog FROM kats
LEFT JOIN tasks ON kats.N=tasks.kat
GROUP BY kats.N,kats.kat
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505475
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О! Теперь заработало!
Всем большое спасибо!
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505486
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всплыла ещё одна особенность этого запроса:
если какой-то категории в списке дел вообще нет, то запрос напишет, что в этой категории одно дело, а не ноль.
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505494
fratoВсплыла ещё одна особенность этого запроса:
если какой-то категории в списке дел вообще нет, то запрос напишет, что в этой категории одно дело, а не ноль.
Код: plsql
1.
SUM(IIF((tasks.kat IS NOT NULL) AND (tasks.date2 IS NULL), 1, 0))
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505495
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frato , Вы всё-таки упорно [censored]...
fratoДелаю так:
Код: sql
1.
2.
3.
4.
SELECT kats.N,kats.kat,COUNT(tasks.N) AS itog FROM tasks
LEFT JOIN kats ON kats.N=tasks.kat
WHERE tasks.date2 IS NULL
GROUP BY kats.N,kats.kat


Сделайте так, как я говорил 20723791 ещё в начале темы:
Код: sql
1.
2.
3.
4.
5.
SELECT kats.N,kats.kat,COUNT(tasks.N) AS itog 
>>>FROM kats 
LEFT JOIN tasks<<< ON kats.N=tasks.kat
WHERE tasks.date2 IS NULL
GROUP BY kats.N,kats.kat

[/quote]
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505496
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин.
Код: sql
1.
2.
3.
4.
5.
SELECT kats.N,kats.kat,COUNT(tasks.N) AS itog 
FROM kats 
LEFT JOIN tasks ON kats.N=tasks.kat
WHERE tasks.date2 IS NULL
GROUP BY kats.N,kats.kat
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505506
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если так, то не попала категория, по которой у всех дел есть дата.
Но я сейчас нашёл для себя рабочий вариант, я сделал так:
У меня там есть ещё один признак: выполнено дело или нет. Получилось так:
Код: pascal
1.
2.
3.
SELECT kats.N,kats.kat, SUM(IIF(vip=FALSE, 1, 0)) AS itog FROM kats
LEFT JOIN tasks ON kats.N=tasks.kat
GROUP BY kats.N,kats.kat


Всем спасибо!
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505555
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fratoне попала категория, по которой у всех дел есть дата
Тогда переместить условие отбора в секцию условий связывания:
Код: sql
1.
2.
3.
4.
5.
SELECT kats.N,kats.kat,COUNT(tasks.N) AS itog 
FROM kats 
LEFT JOIN tasks ON kats.N=tasks.kat
               AND tasks.date2 IS NULL
GROUP BY kats.N,kats.kat
...
Рейтинг: 0 / 0
Подставить в таблицу количество записей с пустой датой
    #39505615
frato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О, последний вариант правильно отработал, только ещё пришлось скобки добавить, без них ошибка была.
Со скобками получилось так:
Код: plsql
1.
2.
3.
4.
5.
SELECT kats.N,kats.kat,COUNT(tasks.N) AS itog
FROM kats
LEFT JOIN tasks ON ((kats.N=tasks.kat)
AND (tasks.date2 IS NULL))
GROUP BY kats.N, kats.kat


А мой вариант с IIF(vip=FALSE... оказался ошибочным, не всё выбирал.
Спасибо!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Подставить в таблицу количество записей с пустой датой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]