tsql - 如何将查询从 cognos sql 转换为 t-sql
问题描述
我有一份在 Cognos 上运行的报告,我们正在迁移到 SSRS。Cognos SQL 使用该rank
函数。有人可以帮我弄清楚如何在 T-SQL 中编写相同的查询:
rank() over (at "left"(upper(cast_char(TIMESTAMP '2018-04-30 00:00:00.0')), 3), dim_customer.concern_name
order by XSUM(case when (cast(dim_order_date.order_date_date as date) between
CAST(:PQ2 AS timestamp) and CAST(:PQ1 AS timestamp))
then invoice_lines_fact3.fare_taken else 0 end
at "left"(upper(cast_char(TIMESTAMP '2018-04-30 00:00:00.0')),3),dim_customer.concern_name,invoice_lines_fact3.inv_line_id
for "left"(upper(cast_char(TIMESTAMP '2018-04-30 00:00:00.0')),3),dim_customer.concern_name ) desc nulls last) as Rank1,`
还有这个 where 子句过滤器:
((cast(dim_order_date.order_date_date as date) between _add_years(cast(TIMESTAMP '2018-04-01 00:00:00.0' as date),(-1)) and CAST(:PQ1 AS timestamp))
and (((dim_route.AIRLCD in ('CC','AA')) and (dim_route.END_DATE < CAST(:PQ2 AS timestamp)))
or (dim_route.END_DATE is NULL)))
解决方案
You rank() 函数在 2008 年可用。
查看您的代码后,您有一个“XSUM”命令。
解决这个问题应该是你的第一个电话点。以下是解决方案的链接(堆栈上)。
将 Cognos 报告转换为 SSRS,XSUM 命令有什么作用?
潜在地,解决此问题将使您的排名功能起作用。
推荐阅读
- javascript - 如何转义预设变量(其中有破折号)
- android - 在文本视图中使用 Retrofit 显示来自 Json 数组的数据
- xamarin.forms - 为什么 Prism.Forms DialogService 不起作用?
- matlab - 有效创建具有四个 (2 x 2) 选项的子类
- python - 将df中的日期字段转换为实际的星期几?
- grafana - 159h 与 160h 打破了 Grafana 中表格时间范围内的相对时间
- xcode - 错误:main.jsbundle 不存在 - React Native 0.60.4
- asp.net - ASP.Net PasswordRecovery 类和账户枚举漏洞
- powershell - 如何防止 Powershell Invoke-sqlcmd 截断 80 列的输出?
- visual-studio-code - 如何关闭“扩展建议”通知?