Страница 1 из 2

Фильтрация строк, содержащих NULL

Добавлено: 25 сен 2019, 17:49
dilon
Сущность "Клиент" имеет поле "Дата задачи", тип MYSQL формула. В формуле стоит просто функция {24}
Функция c ID 24 ссылается на вложенную сущность "Задачи" Функция Select Формула FROM_UNIXTIME([253],'%Y%m%d')
где 253 - Дата задачи.
Все работает. По тем клиентам, у кого есть задачи поле "Дата задачи" показывает срок последней задачи в формате %Y%m%d,
например 20190924
Более того поле "Дата задачи" можно отсортировать по возрастанию или убыванию и это будет работать.
Более того в фильтрах можно задать значение >1 , и покажуться только те клиенты, по которым была задача с любым сроком.

Но нужно отфильтровать тех клиент, у кого значение данного поля пустое (никогда не было задачи, а значит и срока нет). Пробую делать фильтр разными способами =0 или =NULL или IS NULL, или IFNULL()
Но так фильтр не работает.

Пробовал еще варианты. С формулами, фильтрами - не работает.

Вопрос. Как можно отфильтровать клиентов, по которым не создавалось ни одной задачи (подсущность клиента)
Возможно даже другим путем , переписав поле. и его тип ( Не тип MYSQL формула. не функция ), или другая формурла ( не FROM_UNIXTIME([253],'%Y%m%d') ?

Re: Фильтрация строк, содержащих NULL

Добавлено: 25 сен 2019, 20:31
remchik

Код: Выделить всё

SELECT
FROM_UNIXTIME('0','%Y%m%d')
В базе лежит "0"
равно

19700101
Выберите это значение

Re: Фильтрация строк, содержащих NULL

Добавлено: 25 сен 2019, 20:49
dilon
Спасибо за внимание к вопросу. Попробовал.
Но нет. Не работает.
И видимо потому, что там не ноль, а NULL (отсутствие записи)

Как вариант сделал даже так
Вбил в формулу ваше FROM_UNIXTIME('0','%Y%m%d')
И по тем клиентам, по которым нет ни одной задачи, пусто. А по которым есть хоть одна задача и соответственно срок заполнен, там да, пишеться 19700101
Это еще раз говорит о том, что это не ноль

Есть еще решения?

Re: Фильтрация строк, содержащих NULL

Добавлено: 25 сен 2019, 20:58
remchik
поле datetime ?

Re: Фильтрация строк, содержащих NULL

Добавлено: 25 сен 2019, 21:15
remchik
Отфильтровал по полю дата = состояние = Пустые записи, фильтр нормально отработал
Запрос был:
select e.* from app_entity_26 e where e.id>0 and (field_256=0)
field_256 - поле с датой

Re: Фильтрация строк, содержащих NULL

Добавлено: 25 сен 2019, 21:51
dilon
Простите, но мои знания в mysql не такие глубокие.
Не понимаю как Ваше решение воплотить через интерфейс Руководитель.
Что куда вписать в формулу, функцию и т.д.?

Re: Фильтрация строк, содержащих NULL

Добавлено: 26 сен 2019, 07:12
remchik
про sql я написал какой запрос летит в БД с каким признаком, почему у Вас не работает, я не знаю.
Отфильтровал по полю дата = состояние = Пустые записи
Фильтр отработал.

Re: Фильтрация строк, содержащих NULL

Добавлено: 26 сен 2019, 08:59
dilon
Понял.
Но в Руководителе это не работает.
Сергей (support), Вы можете подсказать как решить подобный вопрос?

Re: Фильтрация строк, содержащих NULL

Добавлено: 27 сен 2019, 07:36
support
Вы в самой формуле сделайте так, что бы в том случае если нет данных, она возвращала 0 или какой то символ, например "-" и тогда можно фильтровать по нему. Формулу вы не показали, поэтому подсказать не могу.

Re: Фильтрация строк, содержащих NULL

Добавлено: 27 сен 2019, 09:26
dilon
В первом письме все показал

Сущность "Клиент" имеет поле "Дата задачи", тип MYSQL формула. В формуле стоит просто функция {24}

Функция c ID 24 ссылается на вложенную сущность "Задачи"
Функция Select
Формула FROM_UNIXTIME([253],'%Y%m%d')
где 253 - Дата задачи.