2016-11-09 39 views
0

我试图格式1列基础上有数字的格式是什么值是不同的数字格式:SSRS同一列

我现在的表 enter image description here

我想获得它是一个百分比,除非说明中说的是固定税,那么我希望它是一种货币。

任何想法?

SELECT t1.property, '100' AS tran_code, 'ROOM RATE' AS description, NULL AS tax_amt, @rate AS amount 
    FROM z_taxtype_detail t1 INNER JOIN z_trancode t2 ON t1.tran_code = t2.code 
     WHERE t1.tax_type = 'ROTX' 
     AND t1.property = @property 
      GROUP BY t1.property 
UNION ALL 
SELECT t1.property, t2.code, t2.description, (t1.tax_amt/100), 
     (CASE WHEN t1.tax_base = '1' THEN @rate * (t1.tax_amt/100) 
      WHEN t1.tax_base = '4' THEN t1.tax_amt ELSE 0 END) AS tax_amt 
    FROM z_taxtype_detail t1 INNER JOIN z_trancode t2 ON t1.tran_code = t2.code 
     WHERE t1.tax_type = 'ROTX' 
     AND t1.property = @property 

回答

0

试试这个:

=IIF(Fields!Description.Value="FLAT TAX", 
Format(CDBL(Fields!Tax_Amount.Value),"C3"),Format(CDBL(Fields!Tax_Amount.Value),"P2") 
) 

UPDATE:看来你是从查询,这可能会导致错误,而表达式求值传递NULL值。

尝试使用此查询:

SELECT t1.property, '100' AS tran_code, 'ROOM RATE' AS description, 0 AS tax_amt, @rate AS amount 
    FROM z_taxtype_detail t1 INNER JOIN z_trancode t2 ON t1.tran_code = t2.code 
     WHERE t1.tax_type = 'ROTX' 
     AND t1.property = @property 
      GROUP BY t1.property 
UNION ALL 
SELECT t1.property, t2.code, t2.description, (t1.tax_amt/100), 
     (CASE WHEN t1.tax_base = '1' THEN @rate * (t1.tax_amt/100) 
      WHEN t1.tax_base = '4' THEN t1.tax_amt ELSE 0 END) AS tax_amt 
    FROM z_taxtype_detail t1 INNER JOIN z_trancode t2 ON t1.tran_code = t2.code 
     WHERE t1.tax_type = 'ROTX' 
     AND t1.property = @property 

让我知道,如果这有助于。

+0

它给我一个错误信息:文本框'tax_amt'的值表达式指的是'Description'字段。报告项目表达式只能引用当前数据集范围内的字段,或者如果在聚合内部,则指定指定的数据集范围。字段中的字母必须使用正确的大小写。 – Femmer

+0

@Femmer,我已更新表达式 –

+0

同样的错误消息。 – Femmer

0

为“税额”列添加一个表达式。

=IIF(Fields!Description.Value <> "Flat Tax", FormatPercent(Fields!Tax_Amt.Value,3), FormatNumber(Fields!Tax_Amt,2))

+0

它给了我一个错误消息:文本框'tax_amt'的值表达式指的是'Description'字段。报告项目表达式只能引用当前数据集范围内的字段,或者如果在聚合内部,则指定指定的数据集范围。字段中的字母必须使用正确的大小写。 – Femmer

+0

说明列在数据集中是否有其他名称? –

+0

不,这只是描述 – Femmer