mysql:如何对乘法部分求和
有如下表格: 已售出商品:mysql:如何对乘法部分求和,mysql,sum,multiplication,Mysql,Sum,Multiplication,有如下表格: 已售出商品: code | size | quantity abc123 | small | 4 abc123 | medium | 2 xyz987 | small | 3 xyz987 | medium | 1 xyz987 | large | 2 价目表: code | size | price abc123 | small | 5 abc123 | medium | 7 abc123 | large | 9 xyz987 | sma
code | size | quantity
abc123 | small | 4
abc123 | medium | 2
xyz987 | small | 3
xyz987 | medium | 1
xyz987 | large | 2
价目表:
code | size | price
abc123 | small | 5
abc123 | medium | 7
abc123 | large | 9
xyz987 | small | 10
xyz987 | medium | 13
xyz987 | large | 15
哪种方法是您获取数据的最佳(更快的查询)方法
结果:
code | sold_items | cash
abc123 | 6 | 34
xyz987 | 6 | 73
这应该起作用:
SELECT si.code, SUM(si.quantity), SUM(si.quantity * pl.price) as cash
FROM sold_items si
INNER JOIN price_list pl ON pl.code = si.code AND pl.size = si.size
GROUP BY si.code
请试试这个
CODE SUM(Q.QUANTITY) SUM(Q.QUANTITY * P.PRICE)
abc123 6 34
xyz987 6 73
为什么要使用子查询<代码>按si分组。代码没有派生表就足够了。@Eric当我创建一个小提琴来显示时,你已经快多了;)@Ypercurube-你是对的,我不知道为什么我认为子查询是必要的。到目前为止给出的两个答案都有效,而且它们看起来和我非常相似。你们都给我指出了正确的方向,谢谢。只有当你们加入
prc->qty
时,左键才是必要的。如果您从qty
表开始并连接到prc
,则内部连接就足够了。@EricPetroleJe True,在这里,它是左连接还是内部连接没有多大区别。我接受了它,因为之前我实际上是像count一样计数(p.code);)然后我仔细检查了这个问题,意识到OP要求的是数量之和,而不是数量。。。。这时,我错误地将左连接到内部连接。+1用于向我们显示表模式、示例数据和预期结果。我已经有一段时间没有看到这样的问题了:)@bonCodigo:谢谢!:)
CODE SUM(Q.QUANTITY) SUM(Q.QUANTITY * P.PRICE)
abc123 6 34
xyz987 6 73