下拉参数以限制不在结果集中的列上的数据集

亚瑟

我有一个基于数据集的 SSRS 报告。在数据集查询中,我的 where 子句看起来像这样

TM.term_grp_id in (SELECT distinct term_grp_id from ig_mrvCustomisations.dbo.vw_TerminalsByProfitCentre WHERE store_name = @STORENAME))

如果我在没有任何进一步开发的情况下运行报告,则不会提示我输入 @STORENAME 值。

相反,我手动创建了一个参数并尝试将其链接到上述值,但是由于我的结果集中没有包含 store_name 值,因此我似乎无法对其进行限制。

我根据上表中的不同值在 SSRS 中创建了一个下拉参数,但我无法将它们联系在一起。

如何创建限制 @STORENAME 的提示?

完整查询:

--DECLARE @STARTDATE DATETIME
--DECLARE @ENDDATE DATETIME
DECLARE @STORENAME NVARCHAR(800)

--SET @STARTDATE = GETDATE()-1 + '06:00:00:000'
--SET @ENDDATE = GETDATE() + '05:59:59:997'
SET @STORENAME = 'IVY'


select 
(DATENAME(dw,GETDATE()-1 + '06:00:00:000')) as 'Day',
 CONVERT(date,GETDATE()-1 + '06:00:00:000') as 'Date',
one.term_grp_name AS 'Terminal Group Name',
one.check_type_name AS 'Check Type Name',
(CASE WHEN LEFT(one.check_type_name,2) = 'EV' THEN 'Y' ELSE 'N' END) AS 'Event?',
LEFT(one.revenue_category_name,5) AS 'T3 Coding',
(CASE WHEN LEFT(one.revenue_category_name,2) = '71' THEN '99500'
    WHEN LEFT(one.revenue_category_name,2) = '72' THEN '99550'
 ELSE '99600' END) AS 'T3 Coding for comps',


LEFT(one.term_grp_name,4) AS 'Department',

(CASE WHEN LEFT(one.revenue_category_name,2) = '71' THEN 1010 
WHEN LEFT(one.revenue_category_name,2) = '72' THEN 1020
WHEN LEFT(one.revenue_category_name,5) = '77700' THEN 1070
WHEN LEFT(one.revenue_category_name,5) = '77750' THEN 6165
ELSE 1090 END) as 'Account',
(CASE WHEN one.revenue_category_name = '' THEN 'Total' ELSE one.revenue_category_name END) AS 'Lookup',

LEFT(one.term_grp_name,4) + ' ' + 
(CASE WHEN one.revenue_category_name = '' THEN 'Total' ELSE one.revenue_category_name END) AS 'Dept/Lookup',




one.revenue_category_name as 'Revenue Category',
sum(CONVERT(money,one.Tax)) + sum(CONVERT(money,one.NetRev)) +  sum(CONVERT(money,one.Grat)) AS 'Net Tender',
sum(CONVERT(money,one.NetRev)) as 'Net Revenue',
sum(CONVERT(money,one.disc)) as 'Discount',
sum(CONVERT(money,one.gross)) as 'Gross Revenue',

(CASE WHEN LEFT(check_type_name,2) = 'EV' THEN 0 ELSE sum(CONVERT(money,one.gross)) END) as 'Gross Rev (excl Events)',

(CASE WHEN LEFT(check_type_name,2) = 'EV' THEN 0 ELSE SUM(CONVERT(MONEY,one.grat)) END) AS 'Gratuity (excl Events)',

(CASE WHEN LEFT(check_type_name,2) = 'EV' THEN 0 ELSE SUM(CONVERT(MONEY,one.tax)) END) AS 'Tax (excl Events)',




sum(CONVERT(money,one.Tax)) as 'Tax',
sum(CONVERT(money,one.Grat)) as 'Gratuity',
sum(CONVERT(money,one.SC)) as 'Service Charge',
sum(CONVERT(money,one.Tip)) as 'Tip',
sum(CONVERT(money,one.Covers)) as 'Covers',
Sum(CONVERT(decimal(30,2),one.avecover)) as 'Average Cover',
sum(CONVERT(money,one.Checks)) as 'Checks',
CONVERT(decimal(30,2),(sum(one.NetRev) / nullif(sum(one.Checks),0))) as 'Average Check'


from

(select 
sum(CSD.sales_gross_amount - CSD.discount_amount) as 'NetRev',
sum(CSD.sales_gross_amount) as Gross,
sum(CSD.discount_amount) as Disc,
sum(CSD.gratuity_amount) as Grat,
sum(CSD.service_charge_amount) as SC,
sum(CSD.tip_amount) as Tip,
sum(CSD.tax_amount) as Tax,
sum(CSD.num_covers) as Covers,
(sum(CSD.sales_gross_amount - CSD.discount_amount) / nullif(sum(CSD.num_covers),0)) as 'AveCover',
0 as Checks,
'' as revenue_category_name,
TGM.term_grp_name,
CTD.check_type_name

from ig_business..Check_Sales_Detail CSD (NoLock)

join it_cfg..Terminal_Master TM (NoLock) on TM.term_id = CSD.tendered_terminal_id
join it_cfg..Term_Grp_Master TGM (NoLock) on TGM.term_grp_id = TM.term_grp_id and TGM.ent_id = 1
join ig_dimension..Check_Type_Dimension CTD (NoLock) on CTD.check_type_dim_id = CSD.check_type_dim_id

where CSD.transaction_data_id in
(select transaction_data_id
from ig_business..Check_Sales_Detail CSD (NoLock)
join it_cfg..Terminal_Master TM on TM.term_id = CSD.tendered_terminal_id
where tendered_date_time between GETDATE()-1 + '06:00:00:000' and GETDATE() + '05:59:59:997'
and TM.term_grp_id in (SELECT distinct term_grp_id from ig_mrvCustomisations.dbo.vw_TerminalsByProfitCentre WHERE store_name = @STORENAME))
and CSD.tendered_terminal_id <> 0
and CSD.void_state <> 2

group by TGM.term_grp_name, CTD.check_type_name

union all

select 
sum(CRC.gross_sales_amount_tax_included - CRC.discount_amount_tax_included) as 'NetRev',
sum(CRC.gross_sales_amount_tax_included) as Gross,
sum(CRC.discount_amount_tax_included) as Disc,
0 as Grat,
0 as SC,
0 as Tip,
0 as Tax,
0 as Covers,
0 as 'AveCover',
0 as Checks,
RCD.revenue_category_name,
TGM.term_grp_name,
CTD.check_type_name

from 
ig_business..Check_Revenue_Category_Detail CRC (NoLock) 
join ig_dimension..Revenue_Category_Dimension RCD (NoLock) on RCD.revenue_category_dim_id = CRC.revenue_category_dim_id
left join ig_business..Check_Sales_Detail CSD (NoLock) on CRC.transaction_data_id = CSD.transaction_data_id
join it_cfg..Terminal_Master TM (NoLock) on CSD.tendered_terminal_id = TM.term_id
join it_cfg..Term_Grp_Master TGM (NoLock) on TGM.term_grp_id = TM.term_grp_id and TGM.ent_id = 1
join ig_dimension..Check_Type_Dimension CTD (NoLock) on CTD.check_type_dim_id = CSD.check_type_dim_id

where CRC.transaction_data_id in (select transaction_data_id
from ig_business..Check_Sales_Detail CSD (NoLock)
join it_cfg..Terminal_Master TM on TM.term_id = CSD.tendered_terminal_id
where tendered_date_time between GETDATE()-1 + '06:00:00:000' and GETDATE() + '05:59:59:997'
and TM.term_grp_id in (SELECT distinct term_grp_id from ig_mrvCustomisations.dbo.vw_TerminalsByProfitCentre WHERE store_name = @STORENAME))

Group By
RCD.revenue_category_name,
TGM.term_grp_name,
CTD.check_type_name

union all

select 
0 as 'NetRev',
0 as Gross,
0 as Disc,
0 as Grat,
0 as SC,
0 as Tip,
0 as Tax,
0 as Covers,
0 as 'AveCover',
COUNT(distinct(CSD.check_number))as Checks,
'' as revenue_category_name,
TGM.term_grp_name,
CTD.check_type_name

from ig_business..Check_Sales_Detail CSD (NoLock)
join it_cfg..Terminal_Master TM (NoLock) on TM.term_id = CSD.tendered_terminal_id
join it_cfg..Term_Grp_Master TGM (NoLock) on TGM.term_grp_id = TM.term_grp_id and TGM.ent_id = 1
join ig_dimension..Check_Type_Dimension CTD (NoLock) on CTD.check_type_dim_id = CSD.check_type_dim_id

where transaction_data_id in (select transaction_data_id
from ig_business..Check_Sales_Detail CSD (NoLock)
join it_cfg..Terminal_Master TM on TM.term_id = CSD.tendered_terminal_id
where tendered_date_time between GETDATE()-1 + '06:00:00:000' and GETDATE() + '05:59:59:997'
and TM.term_grp_id in (SELECT distinct term_grp_id from ig_mrvCustomisations.dbo.vw_TerminalsByProfitCentre WHERE store_name = @STORENAME))
and (CSD.associated_check_number = 0 and CSD.refund_flag = 0 and void_reason_dim_id = 0)

group by TGM.term_grp_name, CTD.check_type_name
) as one


Group By one.term_grp_name,
one.revenue_category_name, 
one.check_type_name
ORDER BY [Date] asc, [Terminal Group Name] asc

更新:当我从查询的开头删除声明和设置时,我收到以下错误:

在此处输入图片说明

艾伦斯科菲尔德

您已在代码中声明并指定了 @STREENAME 变量,因此 SSRS 无需设置它,它将始终为 'IVY'

注释掉下面两行

DECLARE @STORENAME NVARCHAR(800)

SET @STORENAME = 'IVY'

它不应该工作。

注意:参数名称区分大小写,因此查询参数名称@STORENAME应与 SSRS参数名称完全匹配,不包括@符号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

右连接返回结果不在 where 集中

来自分类Dev

如何限制数据集中的行数

来自分类Dev

如何从结果集中搜索结果集

来自分类Dev

从SPARQL结果集中检索数据

来自分类Dev

从结果集中获取数据太慢

来自分类Dev

预测值不在数据集中

来自分类Dev

如何在数据集的所有列上计算回归并提取参数

来自分类Dev

使用ajax限制数据库结果(通过选择下拉菜单)

来自分类Dev

使用SQL从数据库读取数据,从而限制了结果集

来自分类Dev

使用SQL从数据库读取数据,从而限制了结果集

来自分类Dev

如何从数据集中填充下拉列表?

来自分类Dev

限制hadoop数据集中的文件(块)数量?

来自分类Dev

限制Hadoop数据集中的文件(块)数量?

来自分类Dev

SqlAlchemy 连接限制数据集

来自分类Dev

PostgreSQL函数的结果集参数

来自分类Dev

使用@Query注释限制结果集

来自分类Dev

从XML结果集中的标签中提取数据

来自分类Dev

SQL Server:基于结果集的不同行的列上的将来值

来自分类Dev

如何设置函数参数以执行不同的m文件集?

来自分类Dev

“top”命令是否有参数以获得永久结果?

来自分类Dev

限制从特定 json 参数返回的结果

来自分类Dev

如何从结果集中获取字符集?

来自分类Dev

如何从结果集中在数组列表中存储2个整数以及如何检索它

来自分类Dev

将group_concat的结果集限制为实际结果

来自分类Dev

在三个不同的结果集而不是一个结果集中查询结果

来自分类常见问题

分层采样数据集并平均训练数据集中的变量

来自分类Dev

分割数据集,但在训练数据集中无效

来自分类Dev

分层采样数据集并平均训练数据集中的变量

来自分类Dev

基于JOIN ON参数或WHERE参数限制SQL结果

Related 相关文章

热门标签

归档