如何求两个cast列和group by的和

643ylb08  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(315)

我正在尝试生成一个余额查询。我有以下疑问:
我想求functamt1和functamt2的和(我不得不使用cast函数,因为数据是varchar,我需要转换成数字)来解决
然后我想按帐号分组,这样每个帐号就有一个记录。但当我把它归为一组时,它会把错误对准我(在下面的查询中,我仍然看到每个帐户有两个多个记录,而不是总余额。
非常感谢您的建议/支持。谢谢你帮我解决第一点。

  1. SELECT
  2. [Company_number],
  3. SC.[DESCRIPTION],
  4. [account_number],
  5. [account_description],
  6. CAST([ACTL_FUNC_AMT] AS DEC(12,2)) + CAST([ACTL_BGNNG_MO_FUNC_AMT] AS DEC(12,2)) AS FunctAmt
  7. FROM [balances]
  8. JOIN [company_details] sc
  9. ON [company_number] = [company_number]
  10. WHERE [company_number] = '132' AND NOT CAST([ACTL_FUNC_AMT] AS DEC(12,2)) = 0 AND NOT CAST([ACTL_BGNNG_MO_FUNC_AMT] AS DEC(12,2)) = 0
  11. GROUP BY [company_number],
  12. SC.[DESCRIPTION],
  13. [account_number],
  14. [account_description],
  15. [ACTL_FUNC_AMT],
  16. [ACTL_BGNNG_MO_FUNC_AMT]

订货人[账号]

eqoofvh9

eqoofvh91#

不知道你尝试了什么,这有点难说,但我猜也许你只是增加了一个 group by account_number ? 您需要添加不属于聚合的其余列。这就是你要找的吗?

  1. SELECT
  2. [Company_Number],
  3. T2.[Company Description],
  4. [Account_Number],
  5. [Account_description],
  6. SUM(CAST([ACTL_FUNC_AMT] AS DEC(12,2)) + CAST([ACTL_BGNNG_MO_FUNC_AMT] AS DEC(12,2))) AS FunctAmt
  7. FROM [general_ledger_data]
  8. JOIN [company_details] t2
  9. ON [Company_Number] = [Company_Number1]
  10. WHERE [Company_Number] = 'Comp1'
  11. GROUP BY [Company_Number],
  12. T2.[Company Description],
  13. [Account_Number],
  14. [Account_description]
  15. ORDER BY [Account_Number]

相关问题