You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询:如何让采购贷项的金额显示为负数?

解决方案:实现采购发票正金额、贷项负金额

当然可以实现这个需求,只需要在查询采购贷项的部分,把金额字段的值取反即可。具体做法是在UNION ALL的第二个SELECT语句中,将C_NETAMOUNT、C_GROSSAMOUNT、C_TAXAMOUNT这三个字段乘以-1,这样贷项的金额就会以负数形式展示,后续汇总时就能自动和发票金额相减,而不是相加。

修改后的完整查询语句如下:

SELECT 
  T_PURCHASEINVOICE.C_ID, 
  T_PURCHASEINVOICE.C_DATE, 
  T_PURCHASEINVOICE.C_NUMBER, 
  T_PURCHASEINVOICE.C_NETAMOUNT, 
  T_PURCHASEINVOICE.C_GROSSAMOUNT, 
  T_PURCHASEINVOICE.C_TAXAMOUNT, 
  T_TAXRATE.C_CODE 
FROM 
  T_PURCHASEINVOICE (NOLOCK) 
  JOIN T_PURCHASEINVOICE_TAXLINE (NOLOCK) ON T_PURCHASEINVOICE.C_ID = T_PURCHASEINVOICE_TAXLINE.C__OWNER_ 
  JOIN T_TAXRATE (NOLOCK) ON T_PURCHASEINVOICE_TAXLINE.C_TAXRATE = T_TAXRATE.C_ID 
WHERE 
  T_TAXRATE.C_CODE = '01' 
  AND T_PURCHASEINVOICE.C_TAXAMOUNT <> 0 
UNION ALL 
SELECT 
  T_PURCHASECREDITNOTE.C_ID, 
  T_PURCHASECREDITNOTE.C_DATE, 
  T_PURCHASECREDITNOTE.C_NUMBER, 
  T_PURCHASECREDITNOTE.C_NETAMOUNT * -1, -- 取反贷项净额
  T_PURCHASECREDITNOTE.C_GROSSAMOUNT * -1, -- 取反贷项总额
  T_PURCHASECREDITNOTE.C_TAXAMOUNT * -1, -- 取反贷项税额
  T_TAXRATE.C_CODE 
FROM 
  T_PURCHASECREDITNOTE (NOLOCK) 
  JOIN T_PURCHASECREDITNOTE_TAXLINE (NOLOCK) ON T_PURCHASECREDITNOTE.C_ID = T_PURCHASECREDITNOTE_TAXLINE.C__OWNER_ 
  JOIN T_TAXRATE (NOLOCK) ON T_PURCHASECREDITNOTE_TAXLINE.C_TAXRATE = T_TAXRATE.C_ID 
WHERE 
  T_TAXRATE.C_CODE = '01' 

说明:

  • 采购发票部分保持原有逻辑,金额为正数;
  • 采购贷项部分的三个金额字段通过* -1取反,转为负数,完全符合你需要的“发票正、贷项负”的展示效果;
  • 这种修改不会影响其他字段的取值,仅调整金额字段的符号,后续进行汇总计算时,负数的贷项金额会自动冲减正数的发票金额。

内容的提问来源于stack exchange,提问作者RISL2023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:30:42