--execute [dbo].[SC_RefreezeCheckList] 1,'MI1010A443',1 ALTER Procedure [dbo].[SC_RefreezeCheckList] @location as int=null ,@Part_Number as nvarchar(50)=null ,@Branch_Id as int =null As Begin declare @query nvarchar(max) set @query= 'SELECT BinStockQuan'+cast(@location as nvarchar(4)) +' From SM_StockFile where Part_Number = '''+@Part_Number+''' AND Branch_ID = '''+CONVERT(nvarchar,@Branch_Id)+'''' exec (@query) update SC_StockCheckFile set ReFreezeDate = GETDATE (),ReFreezeTime = convert(time,getdate()) ,FrozenQuantity =cast(@query as decimal(18,2)) from SC_StockCheckFile where Location =@location end
@query is your select statement, and you're trying to cast it as a decimal value?
Yes, when i exec @query respose is like 3.00, how to cast it to decimal value?
Ahh I see; you're trying to cast the result of the select. That's not what the code does. I would like to suggest a different way of updating, but before I can do that, I need you to provide:
- table definitions (of both tables) in the form of create statements
- sample data in the form of insert statements (so I can validate the code I will be suggesting)
- expected output from the sample data you provide
If I were to join the two tables, which fields would I use to get a one-to-one relation?
declare @query decimal(18,2) = '2310.45'
select cast(@query as decimal)
hope this is what you are looking for ??