Доброго дня, помогите составить запрос.
Есть куча баз похожих но немного разных по наименованиям таблиц, все крутятся на постгресе.
Нужно отобрать в таблицах с РН не активные записи
Что-то типа
SELECT * FROM (SELECT table_name FROM information_schema.tables where table_name like '%accumrg%') WHERE _active = False
запрос в скобках отрабатывает, а как его результат использовать в запросе снаружи - знаний не хватает.
Спасибо.
немного не доходит
последний запрос выдает ошибку, а
with cte1 as (SELECT table_name FROM information_schema.tables where table_name like '%accumrg%')
select * from cte1
выдает список баз в столбик
(1) да, ты сам-то пробовал?
> Common Table Expressions or CTEs, can be thought of as defining temporary tables that exist just for one query
(0) я похожую задачу решаю в два захода: одним запросом составляю список таблиц, у которых _есть_ такое поле (а оно например может быть не у всех таблиц)
по шаблону заполняю второй запрос (важно выбирать только конкретные поля) и соединяю его UNION ALL
типа того:
SELECT _Ref, _Period,'РН.ТоварыНаСкладах' as table_name WHERE _active=False
UNION ALL
SELECT _Ref, _Period,'РН.ТоварыОрганизаций' as table_name WHERE _active=False
мне б так чтоб вообще одной универсальной командой по разным базам. иначе проще в 1с получать список баз из структуры бд и генерить запрос для постгреса, оставляю этот вариант на потом если первым не выйдет.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.