mysql 根据4个表计算总数

uinbv5nw  于 2022-12-17  发布在  Mysql
关注(0)|答案(1)|浏览(106)

我有一个数据库为洗衣constains 4表这样的
交易:
| 交易ID|员工ID|客户ID|洗衣房ID|体重|t日期|日期|
| - ------|- ------|- ------|- ------|- ------|- ------|- ------|
| T-01战斗机|E-01|甲-01| L-01|四个|二〇二二年六月二十日|二○二二年六月二十一日|
| T-02战斗机|E-02战斗机|甲-02| L-02|五个|二〇二二年七月二十八日|二〇二二年七月二十九日|
| T-03战斗机|E-03战斗机|甲-03| L-02|八个|2022年7月5日|2022年7月6日|
| T-04型|E-03战斗机|甲-04| L-01|七|2022年8月1日|2022年8月1日|
洗衣房类型:
| 洗衣房ID|姓名|说明|价格|
| - ------|- ------|- ------|- ------|
| L-01|快车|5果酱|二万|
| L-02|正常|1哈里|七千|
dTransaction_Clothes--衣服交易多对多关系的结果:
| 交易ID|衣物ID|金额|
| - ------|- ------|- ------|
| T-01战斗机|C-01|第二章|
| T-01战斗机|丙-02|三个|
| T-01战斗机|丙-03|第二章|
| T-02战斗机|C-01|五个|
| T-02战斗机|丙-02|四个|
| T-02战斗机|丙-03|四个|
| T-02战斗机|丙-04|六个|
| T-02战斗机|丙-07| 1个|
衣物类型:
| 衣物ID| t姓名|附加费|
| - ------|- ------|- ------|
| C-01|卡奥斯|无|
| 丙-02|凯梅亚|无|
| 丙-03|塞拉娜·潘江|无|
| 丙-04|塞拉娜·彭德克|无|
| 丙-05|洛克|无|
| 丙-06|雅凯特|一万|
| 丙-07|汉杜克|无|
| 丙-08|施普雷|一万|
| 丙-09|雅斯|一万|
| 碳-10|塞利穆特|一万|
| 碳-11|达斯特|无|
我想显示总重量从交易 * 价格从洗衣店类型+额外费用从衣服类型作为总数:

Select Transaction.TransactionID,
    SUM((Transaction.Weight * LaundryTypes.Price) + ClothesTypes.Additionalfee) As Total
From Transaction 
INNER JOIN LaundryTypes ON Transaction.LaundryID = LaundryTypes.LaundryID 
INNER JOIN dTransaction_Clothes ON Transaction.TransactionID = dTransaction_Clothes.TransactionID 
INNER JOIN ClothesTypes ON dTransaction_Clothes.ClothesID = ClothesTypes.ClothesID 
Group By TransactionID;

但结果是这样的,计算仍然是错误的:
| 交易ID|共计|
| - ------|- ------|
| T-01战斗机|二十四万|
| T-02战斗机|小行星17.5万|
| T-03战斗机|小行星346000|
| T-04型|七十一万|
结果应为:
| 交易ID|共计|
| - ------|- ------|
| T-01战斗机|八万|
| T-02战斗机|四万五千|
| T-03战斗机|六万六千|
| T-04型|十六万|
并非所有交易都没有额外费用。

rkttyhzu

rkttyhzu1#

SELECT t.t_id, 
    t.w*l.price+SUM(t_c.amount*c.additionalfee) AS total FROM l
INNER JOIN t
    ON l.l_id=t.l_id
INNER JOIN t_c
    ON t_c.t_id=t.t_id
INNER JOIN c
    ON t_c.c_id=c.c_id
    GROUP BY t_c.t_id;

相关问题