Sql server 如何在SQL Server中将正余额和负余额计算为正?

Sql server 如何在SQL Server中将正余额和负余额计算为正?,sql-server,join,Sql Server,Join,我编写了代码,以提供处于某个暂挂状态的帐户的当前余额 问题是: 当它们是后付费账户时,所欠余额为正数 当它们是预付账款账户时,所欠余额为负数 我的代码如下(不给我任何预付费账户): 但是当我运行这个查询时,我只得到所有的后付费帐户。我没有预付账款 如果我这样做: AND ABS([CurrentBalance]) > 25 --instead of AND [CurrentBalance] > 25 那么,这可能不起作用,因为一些后付费账户支付的金额超过了下个月账单的应付金额

我编写了代码,以提供处于某个暂挂状态的帐户的当前余额

问题是:

  • 当它们是后付费账户时,所欠余额为正数
  • 当它们是预付账款账户时,所欠余额为负数
我的代码如下(不给我任何预付费账户):

但是当我运行这个查询时,我只得到所有的后付费帐户。我没有预付账款

如果我这样做:

AND ABS([CurrentBalance]) > 25  --instead of AND [CurrentBalance] > 25
那么,这可能不起作用,因为一些后付费账户支付的金额超过了下个月账单的应付金额。这使他们处于负平衡


有什么建议吗?我的代码中的错误在哪里?

预付费是负数,后付费是正数,对吗

WHERE 
(
      (P.PlanCode = 'P0100' AND CurrentBalance < 25)
OR    (P.PlanCode = 'P0200' AND CurrentBalance > 25)
)
在哪里
(
(P.PlanCode='P0100'和CurrentBalance<25)
或(P.PlanCode='P0200'和CurrentBalance>25)
)

预付费是负数,后付费是正数,对吗

WHERE 
(
      (P.PlanCode = 'P0100' AND CurrentBalance < 25)
OR    (P.PlanCode = 'P0200' AND CurrentBalance > 25)
)
在哪里
(
(P.PlanCode='P0100'和CurrentBalance<25)
或(P.PlanCode='P0200'和CurrentBalance>25)
)

如果预付余额为负数,则我假设您的“和[CurrentBalance]>25”条件消除了它们。你的意思是“和ABS([CurrentBalance])>25”?这可能不起作用,因为一些后付费账户也有负余额,因为他们有时会支付额外的(超过到期金额)好吧,但这是你问题的根源吗?你可以在里面放任何你想要的陈述。(如果这是标准,您可以将SELECT子句中的相同案例陈述放入WHERE…>25子句中)。如果预付余额为负数,则我假设您的“和[CurrentBalance]>25”条件消除了它们。你的意思是“和ABS([CurrentBalance])>25”?这可能不起作用,因为一些后付费账户也有负余额,因为他们有时会支付额外的(超过到期金额)好吧,但这是你问题的根源吗?你可以在里面放任何你想要的陈述。(如果这是标准,您可以将SELECT子句中相同的case语句放入WHERE…>25子句)。但当前余额的合计将不准确,因为预付款的负余额将抵消后付费的正余额。请发布一些具有预期结果的样本数据,但当前余额的合计将不准确,因为预付款的负余额将抵消后付费的正余额。请发布一些具有预期结果的示例数据