У меня есть оператор, который получает данные из 4 таблиц. Результат этого выбора предоставит мне необходимую информацию с самого начала. Затем у меня есть второй оператор select, в котором я хочу отфильтровать эти результаты.
оператор выглядит следующим образом
WITH temp
AS (SELECT "username",
Max("session_start_time") AS "START_TIME",
"product_name"
FROM (SELECT "PPM"."ppm_logon_sessions"."session_start_time" AS
"SESSION_START_TIME",
"PPM"."ppm_logon_sessions"."username" AS
"USERNAME"
,
"PPM"."ppm_logon_sessions"."user_id"
AS "USER_ID",
"Knta User Products"."product_id" AS
"PRODUCT_ID",
"Knta User Products"."user_id" AS
"USER_ID_2",
"Knta User Products"."user_product_id" AS
"USER_PRODUCT_ID",
"Knta License Usage V"."product_name" AS
"PRODUCT_NAME"
FROM "PPM"."ppm_logon_sessions"
left join "PPM"."knta_user_products"
"Knta User Products"
ON "PPM"."ppm_logon_sessions"."user_id" =
"Knta User Products"."user_id"
left join "PPM"."knta_license_usage_v"
"Knta License Usage V"
ON "Knta User Products"."product_id" =
"Knta License Usage V"."product_id")
GROUP BY "username", "product_name")
SELECT "username", "product_name"
FROM temp
WHERE "start_time" > Trunc(Cast(SYSDATE AS TIMESTAMP)
+ Numtodsinterval(-30, 'day'), 'day')
AND "product_name" IS NOT NULL
Теперь это вернет набор результатов, который выглядит следующим образом:

что я хотел бы сделать, если я возвращаю только те имена пользователей, которые существуют только в определенных продуктах, например, если я хочу отфильтровать только тех пользователей, которые иметь "Configuration" и "User Administration" product_names, которые должны давать мне только те пользователи, а не пользователи, которые имеют "Configuration" и "User Administration" и "Program Management"