2010-07-06 89 views
0

虽然做从函数获取数据中插入

create table #tmpsr(
srid int, 
W_DiffOriginal decimal(12,2) 
) 
insert into #tmpsr 
     (srid,W_DiffOriginal) 
     select sr_id, --- From Table 
     W_DiffOriginal=DiffOriginal --- From Function 
     From TBL_SR,dbo.fnc_VoucherDetails_Get(sr_id) ---Table-Valued Function 
     Where SRdoid = 12811 --- Column in the table TBL_SR 
     and fsrid=sr_id ---fsrid: Columns in the Table-Valued Function, 

我得到的消息:

消息207,级别16,状态1,9号线 无效的列名称sr_id“。

任何想法?

+0

能否请您正确地重新格式化的问题? – Baaju 2010-07-06 07:45:47

回答

1

我认为错误来了,因为你是在这种情况下调用形式的条款

select .... From TBL_SR,dbo.fnc_VoucherDetails_Get(sr_id)功能其没能得到的是sr_id

所以在你的SELECT语句解决这个通话功能这样

create table #tmpsr( 
srid int, 
W_DiffOriginal decimal(12,2) 
) 
insert into #tmpsr 
     (srid,W_DiffOriginal) 
     select sr_id, --- From Table 
     (select W_DiffOriginal from dbo.fnc_VoucherDetails_Get(sr_id))=DiffOriginal ---From Function 
     From TBL_SR, ---Table-Valued Function 
     Where SRdoid = 12811 --- Column in the table TBL_SR 

这可以解决您的问题

+0

fsrid是函数的一列,在这种情况下,你的查询如何工作? – hgulyan 2010-07-06 07:55:33

+0

没有让你 – 2010-07-06 07:58:18

+0

在where子句有fsrid列,这不是TBL_SR表的列。 (--- fsrid:表值函数中的列),这就是为什么你的查询不起作用。我想@Miron正试图从他的功能动态获取表格。 – hgulyan 2010-07-06 08:00:56