【问题标题】:Results from two tables as rows, joining a third for additional columns将两个表的结果作为行,将第三个表连接为其他列
【发布时间】:2018-07-26 12:45:42
【问题描述】:

尝试从 3 个表中提取数据:warpall, warpalq, warcmdt

我希望将来自warpall/warpalq 的数据作为同一结果中的行返回(所以首先是warpall 数据,然后是下面的warpalq 数据),加入warcmdt,因为它有我需要的描述返回。我无法合并它们,因为 warpalq 中没有我需要的一个字段。

有人可以建议如何解决这个问题吗?

select clntpm, pal#pm, clsspm, clsqpm, **commpm**  from warpall
where <criteria>

select clntpq, pal#pq, clsspq, clsqpq from warpalq
where <different criteria>

join warcmdt on warcmdt.clntcd = warpall.clntpm and warcmdt.commcd = 
warpall.commpm

--- 编辑

我现在的语法是;

select 
  * from (select substr(warpall.clntpm,1,2) as clntwf, 
substr(warpall.pal#pm,1,10) as pal#wf, commpm, substr(warpall.clsspm,1,2) as 
clsswf, warpall.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, null 
commpm, substr(clsspq,1,2) as clsswf, clsqpq * 1 as clsqwf from warpalq
where clsqpq <> 0
) as t9
inner join 
  warcmdt as t3
on 
  t3.clntcd = t9.clntwf  and t3.commcd = t9.commpm

【问题讨论】:

    标签: sql join union db2-400


    【解决方案1】:

    知道了。 As400/db2 需要 '0' 用于空列。

    select 
    clntwf, commpm, fdsccd, clsqf, pal#wf, dtcdpm, clsswf, srb#pm, descsc
    from (select substr(warpall.clntpm,1,2) as clntwf,
    substr(warpall.pal#pm,1,10) as pal#wf, commpm, 
    substr(warpall.clsspm,1,2) as clsswf, warpall.clsqpm * 1 as clsqwf, 
    srb#pm, dtcdpm 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, '0', 
    substr (clsspq,1,2) as clsswf, clsqpq * 1 as clsqwf, '0', '0' from warpalq
    where clsqpq <> 0
    ) as t9
    Inner join
    warcmdt as t3
    on 
    t3.clntcd = t9.clntwf 
    and 
    t3.commcd = t9.commpm
    inner join
    warclss as t4
    on
    t4.clsssc = t9.clsswf
    
    order by pal#wf asc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2022-01-21
      相关资源
      最近更新 更多