Java 尝试获取SQL查询以返回customerId等于给定customerId的列的和
我有一个sql查询,当给定一个客户id时,它应该转到booking a,获取“支付金额”列和“部分成本”列的总和。 但是,当我执行时,总成本和总金额分别返回100和100,但总成本和应为1000Java 尝试获取SQL查询以返回customerId等于给定customerId的列的和,java,sql,Java,Sql,我有一个sql查询,当给定一个客户id时,它应该转到booking a,获取“支付金额”列和“部分成本”列的总和。 但是,当我执行时,总成本和总金额分别返回100和100,但总成本和应为1000 SELECT SUM(cost) AS 'total_cost', SUM(amount_paid) AS 'amount_paid' FROM booking WHERE ID = 'customerId' 执行resultSet.getString(“总成本”)时它返回100个相同的支付金额,我
SELECT SUM(cost) AS 'total_cost', SUM(amount_paid) AS 'amount_paid' FROM booking WHERE ID = 'customerId'
执行resultSet.getString(“总成本”)时
它返回100个相同的支付金额
,我也尝试过做resultSet.getString(2)代码>同样的问题。
我做错了什么
预订表中的列:
ID、成本、支付金额、客户ID
插入到预订表中的行
1 100 100,
2 300 100,
3 500 100,
4 100 100,
5 0 100,
删除“其中id='customerId'”:)
我有一个sql查询,当给定客户id时,它应该去预订a获取“已支付金额”列和“部分成本”列的总和。然而,当我执行它时,它返回“总成本总和”为100,“已支付金额总和”为100,但“总成本总和”应为1000
SELECT SUM(cost) AS 'total_cost', SUM(amount_paid) AS 'amount_paid' FROM booking WHERE ID = 'customerId'
因此,预期的答案是总成本=1000(加上所有价值),支付金额=100(或该客户的相关价值)
因此,您的问题是,由于查询中将总成本和支付金额放在一起,因此它也会根据客户ID限制总成本。我建议将其分为两个问题。或者,如果需要维护单个查询,则可以使用子查询来检索总成本,而不受客户ID的限制
SELECT
(SELECT SUM(cost) FROM booking) AS 'total_cost',
SUM(amount_paid) AS 'amount_paid'
FROM booking
WHERE ID = 'customerId'
刚刚编辑了信息谢谢刚刚了解出了什么问题我打电话是通过ID而不是客户ID谢谢!