【问题标题】:SQL query joining rows with same valueSQL 查询连接具有相同值的行
【发布时间】:2012-03-22 11:33:09
【问题描述】:

我需要编写一个查询来创建一个视图,该视图通过考虑每个购买商品的数量和价格来计算每次销售的总成本。该视图应返回借项和总费用。

在答案中,每个借记卡号只能出现一次。

提前致谢

表项:

ID       NAME       PRICE
118      Jeans      100
120      Towel      20
127      Shirt      55

表借记:

DEBIT     ITEM     Quantity
100581    118      5
100581    120      1
100586    127      5

【问题讨论】:

  • 这些表有什么关系?是ITEM->ID吗?
  • 我尝试了以下方法:SELECT debid, (item.price * debit.quantity) AS "Total Price" FROM debit, item WHERE debit.item = item.id
  • @Slinky,是的。 ITEM 与 ID 相关。

标签: mysql sql


【解决方案1】:

您可以使用简单的 JOIN 来尝试此操作;

SELECT d.DEBIT, SUM(d.Quantity*i.Price) SUM
FROM DEBIT d
JOIN ITEM i ON d.ITEM=i.ID
GROUP BY d.DEBIT;

简单演示here.

【讨论】:

    【解决方案2】:

    怎么样-

    SELECT DEBIT.DEBIT, SUM(`ITEM`.`PRICE` * `DEBIT`.`Quantity`)
    FROM `ITEM`
    INNER JOIN `DEBIT`
        ON `ITEM`.`ID` = `DEBIT`.`ITEM`
    GROUP BY `DEBIT`.`DEBIT`
    

    【讨论】:

    • 在这里,我们通过接受我们使用的答案来表示感谢。请接受@Joachim 的回答,因为他努力设置演示。
    【解决方案3】:

    这样的事情会起作用......

    SELECT d.id,SUM(i.price*d.quantity) as total_cost
    FROM item i join debit d 
    on i.id=d.item_id 
    group by d.id;
    

    【讨论】:

    • 你不想按i.price,d.quantity分组。
    • 是的..我知道..写错了..!!
    猜你喜欢
    • 2018-08-09
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多