获取两个相乘的SQL列的总和

获取两个相乘的SQL列的总和,sql,sum,Sql,Sum,我有三张桌子: 比尔: idBill idProduct price 产品: idBill idProduct price BillProducts(连接上表): 现在让我们假设我希望得到一张由ID标识的账单的总价 我需要将Products.Price的列乘以BillProducts.quantity,得到它的结果,并将idBill中的所有其他产品相加 你们能帮我写那个问题吗 SELECT SUM(QUANTxPRICE) AS SUMED, IDBILL FROM ( SELECT (

我有三张桌子:

比尔

idBill
idProduct
price
产品

idBill
idProduct
price
BillProducts(连接上表):

现在让我们假设我希望得到一张由ID标识的账单的总价

我需要将
Products.Price
的列乘以
BillProducts.quantity
,得到它的结果,并将
idBill
中的所有其他产品相加

你们能帮我写那个问题吗

SELECT SUM(QUANTxPRICE) AS SUMED, IDBILL FROM (
SELECT (A.QUANTITY * B.PRICE) AS QUANTxPRICE,a.IDBILL
FROM BILLPRODUCTS AS A
JOIN PRODUCTS AS B ON 
A.IDPRODUCT = B.IDPRODUCT
JOIN BILL AS C
ON A.IDBILL = C.IDBILL
) AS X
GROUP BY IDBILL

您可以这样做:

select sum(p.price * bp.product)
from billproducts bp join
     products p
     on bp.idproduct = p.idproduct
where idbill = <idbill>;
注:

  • 您不需要
    加入
    账单
    表。您需要的所有信息都在另外两个表中
  • 您不需要子查询
  • 定义表别名时,它们应该是表名的缩写,这样查询更容易理解
您可以:

select sum(p.price * bp.product)
from billproducts bp join
     products p
     on bp.idproduct = p.idproduct
where idbill = <idbill>;
注:

  • 您不需要
    加入
    账单
    表。您需要的所有信息都在另外两个表中
  • 您不需要子查询
  • 定义表别名时,它们应该是表名的缩写,这样查询更容易理解


当你说该账单中所有其他产品的总和时,你是指账单产品表中的数量吗?@Ian Fogelman很抱歉我没有明确说明。我想将idBill与我想要的id匹配的每一行的乘积.Price by BillProducts.quantity相乘,并将乘法的所有结果相加。换句话说,当客户购买产品时,他们会收到一张包含所有相关产品(在BillProducts中)的账单,我想知道该账单的总价当你说该账单中的所有其他产品合计时,你是指Billsproducts表中的数量吗?@Ian Fogelman很抱歉我没有明确说明。我想将idBill与我想要的id匹配的每一行的乘积.Price by BillProducts.quantity相乘,并将乘法的所有结果相加。换句话说,当客户购买产品时,他们会收到一张包含所有相关产品(在BillProducts中)的账单,我想知道该账单的总价,这是非常值得赞赏的,mate,有没有办法在单个查询中获得结果(无需创建临时表?),我很高兴,请看编辑,我想这只适用于你的临时工。谢谢,希望你知道你帮我上了一堂课:)@xickoh,如果你想利用stackoverflow在学业上作弊,那是你的问题,也是你的责任。我们不是学校的警察。如果你给网站带来了一个好问题(一个表达得很好并且对未来用户有用的问题),人们会回答它。但你会在学校被抓到,现在或以后。很高兴听到这个,我想我误解了你写的,对不起。更重要的是不要尝试成为学校警察…这是非常感谢的,伙计,有没有任何方法可以在一个查询中获得结果(不创建临时表?)如果是这样,我将非常高兴,对不起,请参阅编辑,我想这只适用于你的临时目的。谢谢,希望你知道你帮我上了一堂课:)@xickoh,如果你想用stackoverflow在作业中作弊,那是你的问题,也是你的责任。我们不是学校的警察。如果你给网站带来了一个好问题(一个表达得很好并且对未来用户有用的问题),人们会回答它。但你会在学校被抓到,现在或以后。很高兴听到这个,我想我误解了你写的,对不起。还有更多的理由不想成为学校警察……这是一个非常有用的朋友,从你写的那些问题中,我设法完成了我的其余任务:)@xickoh。这是对你所问问题的一个更简单的回答。这是非常有用的朋友,从你写的那些问题中,我设法完成了我的其余任务:)@xickoh。这是对你所问问题的一个更简单的回答。