1

我有 3 张包含信息的表格。

表 1:订单

+---------+----------------+------------+--------- ------+
| 订单号 | 订购日期 | 社区 | 状态 |
+-------------------------------------------------- ------+
 1 | 2013 年 3 月 1 日 | S1 | 得到正式认可的
 2 | 2013 年 3 月 5 日 | S2 | 不合格
 3 | 2013 年 3 月 7 日 | Z1 | 得到正式认可的
+-------------------------------------------------- ------+

表 2:订购文章

+-------------------------------------------------- -----------------+
|订单项| 订单号 | ArtikelID | 单价 | 已交付 |
+-------------------------------------------------- -----------------+
| 1 | 1 | 20 | 5 | 是的
| 2 | 1 | 20 | 5 | 是的
| 3 | 2 | 21 | 10 | 是的
| 4 | 3 | 30 | 50 | 是的
+-------------------------------------------------- ------------------+

表3:用户

+-------------------------------------------------- ----+
| 用户名 | 用户名 | 社区 | 部门 |
+-------------------------------------------------- ----+
| 1 | 用户1 | S1 | 小号
| 2 | 用户2 | S2 | 小号
| 3 | 用户3 | Z1 | Z
+-------------------------------------------------- ----+

我需要一个给出以下输出的 MySQL 查询:

+----------------------------------------+
| 部门 | 物品总价
+----------------------------------------+
| 小号 | 20                   
| Z | 50                   
+----------------------------------------+

我尝试了 JOIN、SUM、GROUP BY 但没有结果。我遇到的问题是一个订单给出了多篇文章。谁能帮我?

4

2 回答 2

1

尝试这个

    select Department  , sum(UnitPrice) as TotalPriceOfArtikels 
    from users u
    inner join Orders o
    on o.Community = u.Community
    inner join OrderArtickles oa
    on oa.OrderId = o.OrderId
    group by Department

在这里演示

输出:

    Department  TotalPriceOfArtikels
        S             20
        Z             50
于 2013-03-31T20:42:52.963 回答
0

像这样的东西:

select us.Department,
sum ( art.UnitPrice ) as TotalPriceOfArtikels
from user us
 left join orders ors
on ( us.Community = ors.Community)
 left join OrderArtickles art
on ( ors.OrderID = art.OrderID)
group by us.Department

------------------已编辑------------------------

我在我的mysql中复制了你的表的相同值和结构,结果很好,它给了我:

Department  TotalPriceOfArtikels
    S             20
    Z             50

也许您想检查一个条件,例如 if Deliver = yes 或 status = aprobed??....使用此查询,结果与您发布的结果相同;)

萨卢多斯 ;)

于 2013-03-31T20:42:10.183 回答