Я имею в виду представление .
В Oracle есть образец схемы Скотта, который содержит таблицы о сотрудниках и отделах. Простой запрос без сопоставления для каких-либо столбцов выглядит следующим образом:
SQL> select e.deptno, d.dname, e.empno, e.ename, e.job, e.sal
2 from emp e join dept d on e.deptno = d.deptno
3 where d.deptno = 10;
DEPTNO DNAME EMPNO ENAME JOB SAL
---------- -------------- ---------- ---------- --------- ----------
10 ACCOUNTING 7782 CLARK MANAGER 2450
10 ACCOUNTING 7839 KING PRESIDENT 5000
10 ACCOUNTING 7934 MILLER CLERK 1300
SQL>
Теперь, если вы можете (почему не могли?) Создать такой запрос для ВАШИХ таблиц, простой вариант - создайте представление и выполните сопоставление столбцов. Например, тот же набор столбцов, что и выше:
SQL> create or replace view v_emps as
2 select e.deptno as dept_number,
3 d.dname as dept_name,
4 e.empno as employee_id,
5 e.ename as employee_name,
6 e.job,
7 e.sal as salary
8 from emp e join dept d on e.deptno = d.deptno;
View created.
SQL>
Наконец, нужно просто запросить данные, которые вам нужны, и предоставить их тем, кто в них нуждается, с совершенно новыми именами столбцов:
SQL> select * from v_emps
2 where dept_number = 10;
DEPT_NUMBER DEPT_NAME EMPLOYEE_ID EMPLOYEE_N JOB SALARY
----------- -------------- ----------- ---------- --------- ----------
10 ACCOUNTING 7782 CLARK MANAGER 2450
10 ACCOUNTING 7839 KING PRESIDENT 5000
10 ACCOUNTING 7934 MILLER CLERK 1300
SQL>
Дополнительное отображение не требуется; выполнить любой запрос, он выполнит:
SQL> select * from v_emps
2 where job = 'CLERK';
DEPT_NUMBER DEPT_NAME EMPLOYEE_ID EMPLOYEE_N JOB SALARY
----------- -------------- ----------- ---------- --------- ----------
10 ACCOUNTING 7934 MILLER CLERK 1300
20 RESEARCH 7876 ADAMS CLERK 1100
20 RESEARCH 7369 SMITH CLERK 800
30 SALES 7900 JAMES CLERK 950
SQL>
Если вы используете сервер MS SQL (в отношении упомянутого вами T- SQL), проблем тоже нет; там тоже есть виды.