首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将水晶报表公式转换为CASE表达式

将水晶报表公式转换为CASE表达式
EN

Database Administration用户
提问于 2017-05-18 12:59:37
回答 1查看 1.4K关注 0票数 1

通过尝试将水晶报表公式转换为SQL表达式,我似乎很难理解"total_pallet_weight“和"order_no”的概念,使用“立方英尺”和"order_no“公式中的”和“。我想,通过下面的尝试,我将从一个"total_pallet_weight“的情况开始,然后有一个立方英尺的子大小写来表示公式中的"AND”。但我不太熟悉语法"({a_ras_shipping_order_PCF_vw.total_pallet_weight},{a_ras_truck_shipment_vw.order_no}> 0“是如何工作的。论坛是说“总托盘重量+ order_no > 0”吗?

晶体报告公式:

代码语言:javascript
复制
IF Sum ({a_ras_shipping_order_PCF_vw.total_pallet_weight}, 
{a_ras_truck_shipment_vw.order_no}) > 0
AND Sum ({a_ras_shipping_order_PCF_vw.cubic_feet}, 
{a_ras_truck_shipment_vw.order_no}) > 0
THEN
Sum ({a_ras_shipping_order_PCF_vw.total_pallet_weight}, 
{a_ras_truck_shipment_vw.order_no})
/Sum ({a_ras_shipping_order_PCF_vw.cubic_feet}, 
{a_ras_truck_shipment_vw.order_no})
ELSE 0

试图替换公式:

代码语言:javascript
复制
CASE WHEN (SUM(TCT.[weight]) + SUM(TPM.[weight])) > 0
     THEN
        ,CASE WHEN (SUM(CONVERT(DECIMAL(10,4), (TRCB.skid_height_inches * 
         TPM.dim_ext_x * TPM.dim_ext_y) / 1728))) > 0 
             THEN (SUM(TCT.[weight]) + SUM(TPM.[weight])) + 
             (SUM(CONVERT(DECIMAL(10,4), (TRCB.skid_height_inches * 
             TPM.dim_ext_x * TPM.dim_ext_y) / 1728)))
             ELSE 0
        END
     ELSE 0  
  END AS 'Total_PCF'

用于“总托盘重量”的

语法

代码语言:javascript
复制
SUM (TCT.[weight]) + SUM(TPM.[weight]) AS 'Total_Pallet_Weight'

用于“立方英尺”的

语法

代码语言:javascript
复制
CASE WHEN TRCB.skid_height_inches > 0 AND TPM.dim_ext_x > 0 AND 
TPM.dim_ext_y > 0
THEN CONVERT(DECIMAL(10,4), (TRCB.skid_height_inches * TPM.dim_ext_x * 
TPM.dim_ext_y) / 1728)
ELSE 0 END AS 'cubic_feet',
EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-05-18 13:24:19

看起来,与公式不同,"order_no“似乎不是用于CASE表达式的引用。通过做一些小的调整,并将我的"+“替换为"/”,我得到了正确的结果。

代码语言:javascript
复制
CASE WHEN (SUM(TCT.[weight]) + SUM(TPM.[weight])) > 0
     THEN
        CASE WHEN (SUM(CONVERT(DECIMAL(10,4), (TRCB.skid_height_inches * 
             TPM.dim_ext_x * TPM.dim_ext_y) / 1728))) > 0 
             THEN (SUM(TCT.[weight]) + SUM(TPM.[weight])) / 
             (SUM(CONVERT(DECIMAL(10,4), (TRCB.skid_height_inches * 
             TPM.dim_ext_x * 
             TPM.dim_ext_y) / 1728)))
             ELSE 0
        END
     ELSE 0  
  END AS 'TOTAL_PCF'
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/173935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档