SQL Fiddle目前关于SQL Server代码,所以这里是一个包含.txt
的{{1}}的保管箱链接,用于创建我使用的模式:
https://www.dropbox.com/s/6si4r37449q3ajb/DDL.txt?dl=0
我正在学习考试,并在解决一个例子问题。
创建一个函数来计算过去三年中每个部门安装的软件包的总成本(给定软件包的名称)。检查名称是否准确。
这是我的解决方案:
DDL
创建函数的语句通过,但是当我尝试通过测试场景执行它时,我收到以下错误:
找不到任何一列" dbo"或用户定义的函数或 聚合" dbo.total_cost_of_sofpack_in_lst3yrs",或者名称是 不明确的。
感谢您的帮助。
答案 0 :(得分:5)
由于函数的返回类型为listen
,因此需要调用
TABLE
答案 1 :(得分:1)
鉴于你的问题是
创建一个函数来计算软件包的总成本 (给定软件包的名称)安装在每个部门中 过去三年。
也许你应该把你的函数重写为标量函数?
create function total_cost_of_sofpack_in_lst3yrs(@pack_name varchar(20))
RETURNS decimal(10, 2) -- or whatever data type 'packcost' is...
as
return(
select sum(packcost)as total_pk_cost
from package
inner join software on package.PACK=software.PACK
inner join pc on software.tagnum=pc.tagnum
where package.PACKNAME=@pack_name
and software.INSTDATE > dateadd(year, -3, getdate())
group by pc.location
)
go
select dbo.total_cost_of_sofpack_in_lst3yrs('Manta') as R