Начнем с того, моя структура базы данных выглядит, как показано нижеУпростить SQL запрос для получения одиночных данных
Table Application:ID(pk), App_num, App_name, App_owner, App_sec
Table App_runner: ID(pk), app_id(FK:APP.id), runner_name
Table Jar_used: ID(pk), runId(FK: App_runner.id),jar_name, time_stamp
Table Jar_static: ID(pk), jar_name, current_version, version_status(either of C,S,D)
Моя требуется ResultSet выглядит следующим образом:
App_Num, App_Name, App_Owner, Compliance
где Compliance
производный столбец на основе version_status
из Jar_static
таблица как 'C' = ток, 'S' = поддерживается и 'D' = устарела.
Также Результирующий набор условий:
app.id=app_runner.app_id
и
app_runner.id=jar_used.runId
и
jar_used.jar_name=jar_static.jar_name
После запроса отлично работает для меня:
select app.APP_NUM, app.APP_NAME ,app.APP_OWNER , case jars.version_status
when 'C' then 'CURRENT'
when 'S' then 'SUPPORTED'
else 'DEPRECATED'
end as COMPLIANCE
from Application as app, app_runner as runner, jar_used as used, jar_static as jars
where app.id = runner.app_id and
runner.run_id = used.app_run_id and
jars.jar_name =used.jar_name
Может кто-нибудь пожалуйста, предложить упрощенный путь к делать то же самое?
Также вероятным требованием является поиск записей, где jar_used.jar_name='abc'
наряду с другими тремя условиями. Добавление еще одного и может дать результат, но я ищу несколько упрощенных способов. Благодарим за помощь.
Некоторое идиотизм отклонил мой вопрос. Удивление !!! –