如何在另一个查询中使用查询结果,我想根据条件对结果求和

时间:2017-09-19 15:02:59

标签: mysql sum

DB schema diagram

Full Code Here

我的问题是我构建了一个查询,并将其结果输出到带有这些标题的表中

Query code:
$Prices_query = "
SELECT p.Description pd
     , s.Description sd
     , b.Brand_Description
     , c.Price 
  FROM Products p
     , Supermarket s
     , Brand b
     , Prices c 
 WHERE " . $Product_query . " 
   AND " . $Supermarket_query . " 
   AND p.Product_ID = c.Product_ID
   AND s.Supermarket_ID = c.Supermarket_ID
   AND b.Brand_ID = p.Brand_ID
 ORDER 
    BY sd ";

示例数据

Name | Supermarket | Brand | Price 
--- 
Milk | TESCO | Youmilk | 2.99

Bread | ASDA | Bakery | 4.99

Chocolate | TESCO | Lindt | 7.99 

我想使用该查询的结果,并汇总来自同一超市的所有产品的价格。

我想要实现的目标

Supermarket | Price 
-
TESCO | 10.98

ASDA | 4.99

我不知道该怎么做。有线索吗?非常感谢你提前

CURRENT OUTPUT 

正在显示上面的示例数据

1 个答案:

答案 0 :(得分:0)

你的问题似乎令人困惑。以下是根据我所理解的解决问题的查询。

尝试以下查询并在下方评论是否有效。

修改:我没有使用cross-join以及稍后使用AND条件过滤结果集,而是立即使用inner join来消除复杂性。我也删除了不必要的连接。

    $Prices_query = "
SELECT s.Description sd
       ,sum(c.Price) 
  FROM Prices c
        inner join Supermarket s
             on s.Supermarket_ID = c.Supermarket_ID
 WHERE " . $Product_query . "
   AND " . $Supermarket_query . " 
Group By sd
 ORDER 
    BY sd ";

希望它有所帮助!