i have variable in report holds 2 possible values: 'monthly' , 'daily'. how can put variable (lets call @reportmodel). think should somewhere in group clause, don't know how should like.
declare @reportmodel varchar(10) set @reportmodel = 'monthly' select p.product, sum(o.price * o.quantity), o.orderdate products p inner join orders o on p.id = o.id and now?
how stored procedure handle this, like.....
create procedure rpt_getdata @reportmodel varchar(10) begin set nocount on; declare @sql nvarchar(max); if (@reportmodel = 'daily') begin set @sql = n' select p.product , sum(o.price * o.quantity) total , o.orderdate products p inner join orders o on p.id = o.id group p.product , o.orderdate' exec sp_executesql @sql end else if (@reportmodel = 'monthly') begin set @sql = n' select p.product , sum(o.price * o.quantity) total , month(o.orderdate) [month] products p inner join orders o on p.id = o.id group p.product, month(o.orderdate)' exec sp_executesql @sql end end
Comments
Post a Comment