SQL - Union all / Inner join(with where子句)

时间:2018-02-14 09:56:30

标签: sql join union

我正在尝试将大量旧的AS400查询移植到SQL,因为我正在开发一个用于报告的GUI。更新AS / 400中库的记录。

有了这个,我遇到了一个包含很多步骤的查询,并且表的加入让我有点意外。

以下是一个查询,它可以执行我想从AS400上的三个物理文件中的两个检索数​​据。

select substr(clntpm,1,2) as clntwf, substr(pal#pm,1,10) as pal#wf, 
       substr(clsspm,1,2) as clsswf, clsqpm * 1 as clsqwf
from warpall
where locnpm <> 'ASSEMBLED PALLET'
  and commpm <> 'ASSEMBLED PALLET'
  and clsqpm <> 0

union all

select substr(clntpq,1,2) as clntwf, substr(pal#pq,1,10) as pal#wf, 
       substr(clsspq,1,2) as clsswf, clsqpq * 1 as clsqwf
from warpalq
where clsqpq <> 0

现在我想添加第三个表......据我所知,我想对上述联合的结果进行内部联接。

select * from (
<old query>
) t9
inner join t3 on <field> where t3.field = t9.field

我尝试了什么,但是我很明显语法错误,因为我收到有关where子句意外的错误。

有人可以解决一些问题吗?

1 个答案:

答案 0 :(得分:1)

试试这个

select 
  * from (<old query>) as t9
inner join 
  t3 
on 
  t3.field = t9.field