2017-09-26 46 views
0

我有一个UDTF,将始终返回1行6列 的UDTF有一个参数包括在结果集中的列5返回的列在用户定义的表函数

我想包括在结果中的5列一组查询。我查询的表有一列,我想用它作为每行的参数

我还没有弄清楚正确的语法。

有什么建议吗?

的UDTF

create function xxxx.UF_yyyyyy(USERID CHAR(10)) 
    returns table (
       p2User char(10), 
       STATUS CHAR(3), 
       USED DEC(7, 0), 
       CREATED DEC(7, 0), 
       SIGNON DEC(7, 0), 
       EXCLUDE DEC(7, 0)) 
    language RPGLE 
    NOT DETERMINISTIC 
    NO SQL 
    DISALLOW PARALLEL 
    NOT FENCED 
    EXTERNAL NAME 'xxxx/UF_yyyyyy' 
    PARAMETER STYLE DB2SQL 

例如

select * from table(xxxx/UF_yyyyyy(CHAR('CMFIRST '))) a 

结果

P2USER  STATUS USED CREATED SIGNON EXCLUDE 
---------- ------ ------- ------- ------- ------- 
CMFIRST ACT 1170926 1150826 1170926  0 

这里是我试图

SELECT T1.AQABVN, T1.AQA8TX, 
     (SELECT COUNT(*) FROM fffff T4 WHERE T4.BDABVN = T1.AQABVN) AS SACCMS, 
     t2.p2User, t2.used 
FROM 
    zzzzz T1 
    full join table(xxxx.UF_yyyyyy(T1.AQABVN)) t2 on T1.AQABVN = t2.p2User 
一个选择的示例

结果

[SQL0205] Column P2USER not in table T2 in *N. 
+0

不是真的知道你的意思,也许你可以提供样品结果一些示例数据? – jmarkmurphy

+0

显示您的代码。 – Charles

+0

这有帮助吗? –

回答

1

得到它的工作

SELECT T1.AQABVN, T1.AQA8TX, 
     (SELECT COUNT(*) FROM fffff T4 WHERE T4.BDABVN = T1.AQABVN) AS SACCMS, 
     t2.status, t2.used, t2.created, t2.signon, t2.exclude 
FROM 
    zzzzz T1 
    join 
    table(SMLFQA.UF_XAJKUPR(T1.AQABVN)) t2 on T1.AQABVN = t2.p2User 
+0

很高兴听到您找到答案。请记住,UDTF会出现在表格/视图名称的位置。所以'JOIN表(SMLFQA.UF_XAJKUPR(T1.AQABVN))'而不是'JOIN mytable' – Charles

相关问题