谢谢你来看我的问题。
我有一个 SQL 分组函数,我想向其中添加参数。(如果可能的话)
我试图将参数,表中的两列拼接到函数中,但我似乎没有做对。
此函数创建一个计算记录的表,我希望能够使用“团队”和“位置”的参数进行过滤。我将如何将此信息添加到数据集以允许我进行过滤?
我通常会使用以下方法添加它们:
select
i.Team
,i.Location
From
incident i
Where i.Team in (@Team)
and i.Location in (@Location)
该表称为事件,所有信息都来自同一个表。
我非常感谢这样做的想法。谢谢你。
哦,我正在使用带有 SQL 2008 R2 的 Report Builder 3
declare @st_date datetime;
declare @en_date datetime;
declare @days int;
declare @offset int;
set @en_date = (@en_datein);
set @offset = (@BrowserTimezoneOffset);
set @days = -6;
set @st_date = DATEADD(dd, @days, @en_date);
with daterange(dt) as
(select
@st_date dt
union all
select
DATEADD(dd, 1, dt) dt
from daterange
where dt <= DATEADD(dd, -1, @en_date)
)
select
left(DATENAME(dw, dt), 3) as weekday
,ISNULL(sum(inc.createdc), 0) as createdcount
,ISNULL(sum(inr.resolvedclosedc), 0) as resolvedclosedcount
from daterange left outer join
(select
left(DATENAME(dw,DATEADD(mi,@offset,CreatedDateTime)), 3) as createddatetime
,count(recid) as createdc
from Incident
where DATEADD(mi,@offset,CreatedDateTime) >= @st_date
and DATEADD(mi,@offset,CreatedDateTime) <= @en_date
group by left(DATENAME(dw, DATEADD(mi,@offset,CreatedDateTime)), 3)
) as inc
on inc.CreatedDateTime = left(DATENAME(dw, dt), 3)
left outer join
(select
left(DATENAME(dw, DATEADD(mi,@offset,ResolvedDateTime)), 3) as ResolvedDateTime
,count(case when status in ('Resolved', 'Closed') then 1 end) as resolvedclosedc
from Incident
where DATEADD(mi,@offset,ResolvedDateTime) between @st_date and @en_date
group by left(DATENAME(dw, DATEADD(mi,@offset,ResolvedDateTime)), 3)
) as inr
on inr.ResolvedDateTime = left(DATENAME(dw, dt), 3)
group by dt
order by dt