gpt4 book ai didi

mysql - mysql 中的 SUM 与客户和短途旅行

转载 作者:行者123 更新时间:2023-11-30 00:56:09 25 4
gpt4 key购买 nike

晚安,

目标是了解我的 mysql 表中所有偏移的总和。

我的sql表就是这样的。

Excursion
ID Excursion_Name Excursion_date Excursion_capacity
1 Exc1 date 1 10
2 Exc2 date 1 15

这里的日期1是短途旅行的出发日期(我写日期1只是为了表明两个短途旅行是在同一天)

Booking
Id Excursion_id
1 1
2 1

预订是保存所有预订的表。

Booking_price
booking_id price_id quantity
1 1 2
1 2 0

Booking_price是因为我们有不同的价格如成人、 child 等

我们还有一个名为“价格”的表,其中存储了有关价格的所有信息以及游览的引用。

我只是想得到那种 table 。

Excursion_id       free_tickets(booked_tickets - capacity)
1 8
2 15

谢谢大家!

最佳答案

试试这个方法

SELECT e.id excursion_id, 
e.excursion_capacity - COALESCE(q.quantity, 0) free_tickets
FROM excursion e LEFT JOIN
(
SELECT b.excursion_id, SUM(p.quantity) quantity
FROM booking b JOIN booking_price p
ON b.id = p.booking_id
GROUP BY b.excursion_id
) q
ON e.id = q.excursion_id

SELECT e.id excursion_id, 
MAX(e.excursion_capacity) - COALESCE(SUM(p.quantity), 0) free_tickets
FROM excursion e LEFT JOIN booking b
ON e.id = b.excursion_id LEFT JOIN booking_price p
ON b.id = p.booking_id
GROUP BY e.id

输出:

| EXCURSION_ID | FREE_TICKETS ||--------------|--------------||            1 |            8 ||            2 |           15 |

这里是SQLFiddle 两个查询的演示

关于mysql - mysql 中的 SUM 与客户和短途旅行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20530524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com