我的报告中有两张表:
我想将Scrap中的值除以Table Total
中的值- > (16227/425841)* 100
这是代码:
Select date as Datetime, tevent.name as Event, SUM(value) as sum
from tCount inner join tEvent ON tCount.eventid = tevent.id
where Name in ('Drive Fast', 'Drive Slow')
and date > getdate() -1
and tevent.Name in ('E01','E02','E03','E04','E05','E06','E07','E08')
and CalName = 'Drive'
这些的总和:'E01','E02','E03','E04','E05','E06','E07','E08',我在报告中这样做:Sum (字段!E01.Value +字段!E02.Value +字段!E03.Value + ...
对于另一张表,它看起来像这样:
Select date as Datetime, tevent.name as Event, SUM(value) as sum
from tCount inner join tEvent ON tCount.eventid = tevent.id
where Name in ('Drive Normal')
and date > getdate() -1
and tevent.Name in ('E01','E02','E03','E04','E05','E06','E07','E08')
and CalName = 'Drive'
我必须对这两个陈述进行划分。 但是,如果我将Total的值放入Scrap Expression中,那么结果就是错误的。希望你能帮帮我。
答案 0 :(得分:1)
根据我对您的问题的理解,您有两个数据集,并且您想要计算总计的报废百分比
为了复制你的问题,我创建了两个DataSet,如下所示
Scrap Dataset
myDateTime Event mySum
01/01/2015 Scrap 16227
02/01/2015 Scrap 14637
03/01/2015 Scrap 14174
Total Dataset
myDateTime Event mySum
01/01/2015 Total 425841
02/01/2015 Total 434024
03/01/2015 Total 405216
在报告中创建一个表,并将第1列设置为mySum
ScrapDataSet
然后,您可以使用第2列中的LOOKUP函数从另一个数据集中查找特定值,假设存在公共字段。在这个例子中
=Lookup(Fields!myDateTime.Value,
Fields!myDateTime.Value,
Fields!mySum.Value,
"TotalDataSet")
将myDateTime
中的ScrapDataSet
与myDateTime
中的TotalDataSet
进行比较,并在mySum
TotalDataSet
然后,您可以按如下方式组合这两个表达式,以获得第3列
中所需的百分比=Fields!mySum.Value /
(Lookup(Fields!myDateTime.Value,
Fields!myDateTime.Value,
Fields!mySum.Value,
"TotalDataSet"))
在这个例子中,我将第三列格式化为2位小数的百分比格式。
这些步骤会产生一个看起来像这样的表
希望这是您需要的输出。如果您需要进一步的帮助,请询问原始问题的澄清。
作为最后的注释,Sum和DateTime不是推荐的字段名称,因为这些都是可以在SSRS中用来定义执行函数类型的关键字。这些应该真正重命名 - 正如我在上面的例子中所做的那样。