我尽可能地简化,但我有两个表:

一个包含名为"bill"的数据的表

ID discount
1 0.25
2 0.90
3 0.10

另一个是包含这些物品的,称为"items"

ID IDbill item price quantity
1 1 a 1.50 1
2 1 b 6.00 2
3 1 c 3.00 3
4 2 a 1.50 6
5 2 d 5.00 2
6 3 c 3.00 1

总数是将IDbill与表bill中的ID匹配的(items.price * items.quantity)之和,然后乘以该ID的"1-bill.discoun

我如何进行查询以搜索结果?例如,搜索"....WHERE ´total´ = '2.7'"并返回Bill的ID 3

推荐答案

可能你过度简化了你的场景,但这是基于你的提问:

select i.IDBill
from items i
join bill b on b.id = i.idbill
group by i.IDBill
having sum(price * quantity * (1 - b.discount)) = 1.9;

看这个example Fiddle

不出所料,返回2.

Mysql相关问答推荐

默认情况下,MariaDB是否限制为本地主机?

SQL 请求:REPLACE 和通配符 %.如何做正确的事?

条件触发mysql

根据 MySql 中同一表中的多列 Select 多列

global max_connections 和 spring.hikari.maximumPoolSize 有什么区别?

有没有比使用 MySQL 计划事件更好的方法来更新我的数据库表中的列?

MySQL - 如何查询涉及前面计算值的表结果

如何使用 express.js 和 react.js 删除连接表中的元素和关联元素

如何将内置的时间浏览器过滤器反映到 Grafana 中的 mysql 查询中?

Select 在同一天售出不同活动门票的收银员

如何根据特定条件从mysql数据库中 Select 查询

MySQL查询根据同一表中其他字段的值更新表中的字段

MySQLi count(*) 总是返回 1

减少mysql中的值但不是负数

错误 1396 (HY000): 'user'@'localhost' 的操作 DROP USER 失败

不正确的整数(2147483647)被插入到 MySQL 中?

MySQL:在 Select 语句中自动增加临时列

一次查询 MySQL 插入多行

MySQL - 我如何输入 NULL?

为什么 GRANT 在 MySQL 中不起作用?