我正在运行查询来检查一家公司的datausage 并且偶然发现了一个问题,我注意到最终状态下的KB使用量超过了应有的水平。退款脚本工作错误。
我已经诊断出问题,并注意到: 在备用1(退款)中,存在不是“-800”的值,有时存在>的值。 0这是一个问题,因为退款应该总是减去。
我该如何实现?我写过这个,但我不知道如何继续:
SELECT callclass,redirectingnumber,spare1,spare2
FROM [CDR_Week_43].[dbo].[CDR-2013-10-20]
where 1=1
and mvno_id = 7
and callclass = 29
if [spare1] = 'Refund' and [spare2] > 0
then
在备用1中,我们将获得“退款”字符串,在备用2中将有值。 我想要做的是如果值大于0,例如300它将显示为-300或类似的东西。
答案 0 :(得分:0)
此查询始终返回spare2
小于0:
SELECT callclass,redirectingnumber,spare1,
case when spare2 > 0 then spare2 * -1 else spare2 end as spare2
FROM [CDR_Week_43].[dbo].[CDR-2013-10-20]
where mvno_id = 7 and callclass = 29
使用case
语句,您可以在查询中操作值
答案 1 :(得分:0)
SELECT
CALLCLASS
, REDIRECTINGNUMBER
, SPARE1
, CASE SPARE2 > 0 THEN SPARE2*-1 ELSE SPARE2 END AS SPARE2
FROM
[CDR_Week_43].[dbo].[CDR-2013-10-20]
WHERE
1=1
AND mvno_id = 7
AND callclass = 29
答案 2 :(得分:0)