作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的要求是将 Columnname 作为参数发送到存储过程并对该列执行 SUM。
我已经编写了一个小的存储过程来接受列名作为参数并对其求和,但是我遇到了一个错误。
CREATE PROCEDURE dbo.testCol
-- Add the parameters for the stored procedure here
@type as nvarchar(20),
@beginDate as smalldatetime,
@endDate as smalldatetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
select dbo.mytable.date, sum(@type) as quantity
from dbo.mytable
where dbo.mytable.Date between @beginDate AND @endDate
group by dbo.mytable.date,dbo.mytable.day
order by dbo.mytable.date
END
GO
我在执行此存储过程时遇到错误,如 “操作数数据类型 nvarchar 对求和运算符无效。”
。
非常感谢任何帮助。
谢谢
最佳答案
您需要使用动态 sql 来获取要在查询中以这种方式使用的传递的列名。
使用sp_executesql 并在字符串中包含列名,并将@beginDate 和@endDate 作为参数传递。
关于tsql - 列名作为参数并在 T Sql 中对其求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870102/
我是一名优秀的程序员,十分优秀!