具有参数的表值函数中的OPENQUERY

问题描述 投票:0回答:2

我是使用OPENQUERY的新手,在表值函数中使用它时遇到了问题,以下是我的查询

 INSERT INTO @returnList 
     SELECT * 
     FROM OPENQUERY(lnk_db, 'SELECT s.posting_date -COALESCE(max(a.due_date::date), l.grant_date) as loan_age
                             FROM ln.loan_snapshot_active s
                             INNER JOIN ln.loan_active l ON l.id = s.loan_id
                             LEFT JOIN ln.amortization_schedule a ON a.loan_id =  l.id
                                                                  AND a.status = ''PAID''
                                                                  AND a.due_date < s.posting_date
                             WHERE s.posting_date = ''2020-01-07''::date
                             GROUP BY l.id, s.posting_date, l.grant_date');

当我将日期直接放在where s.posting_date = ''2020-01-07''::date中时,效果很好

但是当我动态地处理它时,我总是遇到错误。

我必须传递用户选择的日期,并且这样做[>]

WHERE s.posting_date = ''''' +@postingdate+'''''::date

但是我总是遇到错误。 (在此代码中,我遇到一个错误,指出Incorrect syntax near '+'.

有人可以帮我吗?我已经尝试过其他解决方案,但是它永远无法正常工作。

提前感谢

我是使用OPENQUERY的新手,在表值函数中使用它时遇到了问题,下面是我的查询INSERT INTO @returnList SELECT * FROM OPENQUERY(lnk_db,'...

sql-server sql-server-2008 table-valued-parameters openquery
2个回答
0
投票

尝试


0
投票

根据this answer,OPENQUERY不接受变量作为其参数。

© www.soinside.com 2019 - 2024. All rights reserved.