合并SSRS

时间:2016-06-30 15:13:58

标签: sql url reporting-services

我们正在使用SSRS为Sitecore网站生成一些自定义报告,查询自定义分析表。问题是它包含的URL仅在格式上完全不同,具体而言:

我希望能够巩固所有这些。不确定是否应该在报表定义中的url项的表达式中完成此操作(当前只是=Fields!URL.Value,或者我是否需要在数据到达报表之前过滤数据(可能在存储过程中) ?有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我会将URL拆分为Hostname,Resource和Parameters。这样你就可以按照你认为合适的方式巩固它们。

您可以拥有一个主机名表和备用名称,例如www.blah.com,blah.com,127.5.5.1,SERVER.LOCAL等等,以便您可以根据'喜欢'进行整合。主机名(或没有)如果没有查找表,就无法自动执行此操作(因为SQL永远不会知道IP =域等)

对于资源,您必须对扩展列表执行相同的操作,以便再次能够合并文件类型。

对于参数,您甚至可以将其解析为参数/值对,并再次合并每个参数...(例如,您可能希望合并在pageid =但不是searchterms = ...)

另外......一个离别的想法......在所有这些关于SQL注入的过程中要非常小心,确保在做任何事情之前正确地清理你的输入。因为有人可能很容易弄乱你的数据库(意外或其他)

答案 1 :(得分:1)

我理解目标,然而,存在一些固有的问题

例如,规范化http和/或剥离www很容易做到,但仍然存在一些问题。

Select Distinct url=replace(Replace(url,'https:','http:'),'www.','')
 From  @Table

返回3个不同的值(5个中)

url
http://blahblah.com/aboutus
http://blahblah.com/aboutus.aspx
http://blahblah.com/aboutus.aspx?parameterX=Y

其余三个可能完全是单独的网络电话

答案 2 :(得分:1)

根据您的评论,您正在处理单个域名,因此您可以使用它来分割/解析您的网址。

检查内部cte上的部分结果以验证最终结果。

<强> SQL DEMO

SendEMailAddressVerificationCommand

<强>输出

enter image description here