我的sql语句不喜欢我的part over语句

时间:2019-03-12 16:00:28

标签: sql db2

我在DB2中有一个简单的查询。我在顶部第二行出现错误。出于某种原因,它不想运行我的over(partition)行?

AutoSelectFirstFilter tmp;
completer->popup()->installEventFilter(&tmp);

我得到的错误是:

with core as(
select  *,row_number() over(partition by asgnd_to_pin order by stdt asc) as rank
from mhal_rep.stushh
where stus_cd in ('DWRT', 'FINL', 'DWFL', 'DWR', 'DWSR', 'DWPC')
AND STDT BETWEEN '2009-02-28' AND '2019-02-28'
UNION
select  *,row_number() over(partition by asgnd_to_pin order by stdt asc) as rank
from mhal_rep.stusha
where stus_cd in ('DWRT', 'FINL', 'DWFL', 'DWR', 'DWSR', 'DWPC')
AND STDT BETWEEN '2009-02-28' AND '2019-02-28'
 ),

 core1 as(
select asgnd_to_pin, stus_cd, stdt, rank, (('2019-02-28'-stdt)/365) as     
lngth_srvc
from core
where rank=1 and 
asgnd_to_pin in (
'788387',
'271562',
'155851')

select *
from core 1;

1 个答案:

答案 0 :(得分:1)

使用

select  t.*, row_number() over(partition by asgnd_to_pin order by stdt asc) as rank
from mhal_rep.stushX t
...

代替

select  *, row_number() over(partition by asgnd_to_pin order by stdt asc) as rank
from mhal_rep.stushX
...

但是实际上您还有更多问题:
-core1未关闭)子选择
-外部select语句中core1之间的空格