34,576
社区成员
发帖
与我相关
我的任务
分享
Create proc GetItemCount
@itemID int,
@yearStr nvarchar(40),
@deptStr nvarchar(40)
as
declare @w nvarchar(1000)
declare @Sql nvarchar(2000)
if LEN(@deptStr)=0
Set @w = ''
else
Set @w = ' and YearPlan_UseDept = '''+@deptStr+''''
Set @Sql = 'Select SUM(YearPlan_Amount),SUM(YearPlan_ly),SUM(YearPlan_ls),SUM(YearPlan_lg) From Mpt_YearPlan Where YearPlan_Year = '''+@yearStr+''' and YearPlan_ItemSmlID = '+ @itemID + @w
print(@Sql)
Go
exec GetItemCount 12,'df','bm'
---结果
Select SUM(YearPlan_Amount),SUM(YearPlan_ly),SUM(YearPlan_ls),SUM(YearPlan_lg)
From Mpt_YearPlan Where YearPlan_Year = 'df'
and YearPlan_ItemSmlID = 12 and YearPlan_UseDept = 'bm'
最后的这个 @itemID + @w 有问题,因为@itemid int 型的,
所以要转换一下 用ltrim(@itemid)或者 CAST 都可以
Set @Sql = 'Select SUM(YearPlan_Amount),SUM(YearPlan_ly),SUM(YearPlan_ls),SUM(YearPlan_lg) From Mpt_YearPlan Where YearPlan_Year = '''+@yearStr+''' and YearPlan_ItemSmlID = '+ cast(@itemID as varchar(10)) + @w