SQL查询实现:根据账单总金额筛选对应bill表ID
按账单总金额筛选的SQL查询
需求说明
现有两张业务表:
bill表:存储账单的折扣配置items表:存储各账单对应的商品明细数据
账单总金额计算规则:通过items.IDbill与bill.ID关联账单和商品项,先计算单账单下所有商品的price * quantity总和,再乘以对应账单的1 - discount得到最终总金额。需编写SQL查询,筛选出总金额符合指定条件的账单ID(例如总金额等于2.7时返回bill表的ID3)。
实现SQL语句
SELECT b.ID FROM bill b JOIN items i ON b.ID = i.IDbill GROUP BY b.ID, b.discount HAVING SUM(i.price * i.quantity) * (1 - b.discount) = 2.7;
语句逻辑说明
- 表关联:通过
bill.ID和items.IDbill建立关联,确保商品项匹配到所属账单 - 分组聚合:按账单ID和折扣字段分组,计算单账单下所有商品的总价总和
- 条件筛选:使用
HAVING子句对计算后的最终总金额进行过滤,可根据需求修改等式右侧的数值(如改为> 10或< 5等)
内容的提问来源于stack exchange,提问作者dvd251996
相关产品推荐
相关产品推荐

