таблица "клиенты", у нее подтаблица "проекты" в которой поле "проект" как связь с таблицей "проекты справочник".
при добавлении требуется показывать только те записи из справочника проектов, которых еще нет в этой подтаблице.
как сделать?
предполагаю надо сделать фильтр "эксперт": запрос на исключение записей подтаблицы из справочника. верно?
`Проект` NOT IN (1, 3, 9, 15.... ) //перечисляем id уже присутствующих проектов из справочника
но как получить эти id?
кстати в подтаблице "проекты" у поля "проект" стоит "Запрещать дублирование значений", но не срабатывает.
в подтаблице это не проверяется?
2
фильтр исключить существующие
Автор mak, 16 июля 2015 16:48
Сообщений в теме: 5
#1
Отправлено 16 Июль 2015 - 16:48
#2
Отправлено 17 Июль 2015 - 08:32
mak (16 Июль 2015 - 16:48) писал:
предполагаю надо сделать фильтр "эксперт": запрос на исключение записей подтаблицы из справочника. верно?
`Проект` NOT IN (1, 3, 9, 15.... ) //перечисляем id уже присутствующих проектов из справочника
но как получить эти id?
`Проект` NOT IN (1, 3, 9, 15.... ) //перечисляем id уже присутствующих проектов из справочника
но как получить эти id?
Тогда
`id` NOT IN (SELECT `Проект` FROM `проекты` WHERE `status` = 0)
Сообщение отредактировал maksn: 17 Июль 2015 - 08:46
#3
Отправлено 17 Июль 2015 - 13:08
да, на справочник при добавлении записи в подтаблицу, но в рамках текущей записи таблицы,
т.е. надо исключать не все записи какие есть в подтаблице, а только относящиеся к текущей записи.
как получить в фильтре id записи? не подтаблицы а главной.
т.е. надо исключать не все записи какие есть в подтаблице, а только относящиеся к текущей записи.
как получить в фильтре id записи? не подтаблицы а главной.
`id` NOT IN (SELECT `Проект` FROM `проекты` WHERE `status` = 0 AND 'поле связи с таблицей контрагенты' = id)
#4
Отправлено 20 Июль 2015 - 16:45
фильтр не работает.
пробовал разными способами
так работает, строки с такими id не появляются:
так не работает - поле вообще не раскрывается для выбора:
3 - это id одной из записей, для теста.
запрос "SELECT `f4450` FROM DATA_TABLE290 WHERE `f4530` = 3" в phpMyAdmin выдает 2 строки со значениями 2 и 0.
что я делаю не верно?
пробовал разными способами
так работает, строки с такими id не появляются:
`id` NOT IN (1,2,3)
так не работает - поле вообще не раскрывается для выбора:
`id` NOT IN (SELECT `f4450` FROM DATA_TABLE290 WHERE `f4530` = 3)
3 - это id одной из записей, для теста.
запрос "SELECT `f4450` FROM DATA_TABLE290 WHERE `f4530` = 3" в phpMyAdmin выдает 2 строки со значениями 2 и 0.
что я делаю не верно?
#5
Отправлено 20 Июль 2015 - 17:19
запрос такого вида работает:
заработало после назначения столбцу "f4450" имени, т.е. => `f4450` as `ID`
остался вопрос, как в фильтре обратится к полю главной таблицы или подтаблицы,
т.е. структура - таблица -> подтаблица -> связь со справочником (фильтр)
в фильтре надо знать id текущей записи "таблицы" - как?
`ID` NOT IN (SELECT `f4450` as `ID` FROM DATA_TABLE290 WHERE `f4530` = '3')
заработало после назначения столбцу "f4450" имени, т.е. => `f4450` as `ID`
остался вопрос, как в фильтре обратится к полю главной таблицы или подтаблицы,
т.е. структура - таблица -> подтаблица -> связь со справочником (фильтр)
в фильтре надо знать id текущей записи "таблицы" - как?
#6
Отправлено 23 Июль 2015 - 16:49
Боюсь что никак, т.к. это переменное значение, зависящее от текущей открытой страницы, а имеющиеся фильтры представляют из себя статичные выражения без использования переменных (за исключением "текущий пользователь").
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных