各位请教一问题,如何将两张表写成一个视图?如下图所示

------解决方案--------------------
将第二张表先按照下面行专列,再关联第一张表得结果
select b,max(decode(rn,1,a,null)) 途径1,max(decode(rn,2,a,null)) 途径2 from (
select b,a,row_number()over(partition by b order by a) rn from tmp_table) group by b
------解决方案--------------------
--> 测试数据:a
if object_id('a') is not null drop table a
go
create table a([药品编码] varchar(10),[药品名称] varchar(10))
insert a
select 'PCC001M','阿莫西林'
--> 测试数据:b
if object_id('b') is not null drop table b
go
create table b([药品编码] varchar(10),[给药途径] varchar(10))
insert b
select 'PCC001M','Route1' union all
select 'PCC001M','Route2'
--查询语句
select b.[药品编码],a.[药品名称],[途径一]=max(case [给药途径] when 'Route1' then [给药途径] else '' end),
[途径二]=max(case [给药途径] when 'Route2' then [给药途径] else '' end)
from b left join a on a.[药品编码]=b.[药品编码]
group by b.[药品编码],a.[药品名称]
(1 行受影响)
(2 行受影响)
药品编码 药品名称 途径一 途径二
---------- ---------- ---------- ----------
PCC001M 阿莫西林 Route1 Route2
(1 行受影响)