0
我的存儲過程:輸入變量作爲存儲過程語句
ALTER PROCEDURE [dbo].[Perdate]
@D_Data as nvarchar(999)
AS
SELECT 'Total'= SUM(CAST(TBL_Stock.R_TotalPrice as decimal(18,2))),(convert(varchar,TBL_Stock.D_Datepush,105)) as Date
FROM TBL_Stock
GROUP BY (convert(varchar,TBL_Stock.D_Datepush,105))
Having (convert(varchar,TBL_Stock.D_Datepush,105)) = @D_Data
我想知道這是否是可能的變量(@D_Data
)設置爲一樣的東西:
'02-03-2012' or (convert(varchar,TBL_Stock.D_Datepush,105)) = '02-04-2012'
所以有子句將是:
HAVING (convert(varchar, TBL_Stock.D_Datepush, 105)) = '02-03-2012'
OR (convert(varchar, TBL_Stock.D_Datepush, 105)) = '02-04-2012'
所以我的想法是有(在我的VB.net項目)一個字符串這可能會動態地改變存儲過程「未來」
我沒有時間給一個完整的答案,但有一點是:爲什麼使用HAVING當它不包含聚合?把條件放在WHERE子句中!另外,什麼DBMS和什麼版本? Microsoft SQL Server 2008還是什麼? – ErikE 2012-02-04 02:25:44
你會想看看動態SQL。 http://msdn.microsoft.com/en-us/library/ms188001.aspx。如果你走這條路線,你將失去使用存儲過程(如計劃緩存)的許多好處。有可能是你想要做的事情有更好的解決方案,那麼你真正想做什麼? – 2012-02-04 02:37:25