れ螻 螳 襯 襷り..
create function dbo.ufn_game_weekly (@bdt date, @edt date)
returns table
as
return (
select
蟆
, sum(蟆襾碁) 蟆襾碁
from 誤企
where 讌 between @bdt and @edt
group by
蟆
)
go
select dbo.ufn_game_weekly ('20120801', '20120807')
--願唄 覲豌襴.
襯 伎 れ螻 螳 譯殊姶覲襦 cross apply , 覲豌襴螳 蟆曙郁 . 企蟆 襯 伎 伎 group by 貉朱朱 group 朱 覓玖鍵 伎. 覿 貉殊 group by 蠍 企.
select
a.begin_dt
, a.end_dt
, b.蟆
, b.蟆襾碁
from (
select distinct
convert(date, DATEADD(dd, CONVERT(int, convert(datetime, date_key), 112) % 7 * -1, date_key)) begin_dt
, convert(date, DATEADD(dd, 7 - (CONVERT(int, convert(datetime, date_key), 112) % 7 + 1 ), date_key)) end_dt
from dm.dim.date a --願唄 讌 企
where 1=1
and date_key between convert(char(8), DATEADD(dd, CONVERT(int, convert(datetime, '20120801'), 112) % 7 * -1, '20120801'), 112)
and convert(char(8), DATEADD(dd, (CONVERT(int, convert(datetime, '20120904'), 112) % 7 + 1) * -1, '20120904'), 112)
) a
cross apply reader.dbo.ufn_game_weekly(begin_dt, end_dt) b
go
企 蟆曙一 れ螻 螳 企 xml襦 蟆郁骸襯 襷り 襴危. 蠏碁 覲豌襴 . 企 糾螳 豕語 讌 誤讌 .
--drop function dbo.ufn_game_weekly
create function dbo.ufn_game_weekly (@bdt date, @edt date)
returns @rs table
(
蟆 int
, 蟆襾碁 bigint
)
as
declare @x xml
set @x = (
select
蟆
, sum(蟆襾碁) 蟆襾碁
from 誤企
where 讌 between @bdt and @edt
group by
蟆
for xml path('row')
)
insert @rs
select
y.item.value('(蟆)[1]', 'smallint')
, y.item.value('(蟆襾碁)[1]', 'bigint')
from (select @x xitem) x
cross apply x.xitem.nodes('/row') as y(item)
return;
go
覦 覦 覃伎 瑚る 谿場 襭企.