gpt4 book ai didi

mysql - SQL检查列中的值大于行数

转载 作者:行者123 更新时间:2023-11-29 09:32:11 24 4
gpt4 key购买 nike

我正在构建一个网络应用程序,客户可以在其中从企业(供应商)预订服务。但第一个供应商需要添加他提供什么服务,他能够在哪里提供这些服务,以及从哪个时间(开始时间)到哪个时间(结束时间)有多少用户可用

所以我很困惑,假设一个客户在某个特定时间预订了一项服务,而当另一个客户从该供应商那里预订了一项服务时,我们需要计算的是可用用户数量该时间段内的数量大于该特定时间段内已预订(尚未完成)的数量

我有这三个表

users = (for both customer & vendors)

id | name | address | role_id
1 | Customer | some address | 1
2 | Vendor | Some Address | 2
3 | Another Customer | Some address | 1
4 | Another Vendor | address | 2
vendor_available_time = (only for vendor)

id | date_start_time | date_end_time | no_of_users |vendor_id
1 | 2019-10-16 00:00:00 | 2019-19-16 23:59:59 | 3 | 2
1 | 2019-10-16 09:00:00 | 2019-19-16 17:00:00 | 1 | 4
1 | 2019-10-17 00:00:00 | 2019-19-17 23:59:59 | 3 | 2
1 | 2019-10-17 09:00:00 | 2019-19-17 17:00:00 | 2 | 4

bookings = (for both)
id | booking_status | booking_datetime | customer_id | vendor_id
1 | job started | 2019-10-16 10:00:00 | 1 | 2
1 | completed | 2019-10-15 10:00:00 | 1 | 2
1 | accepted | 2019-10-16 09:00:00 | 3 | 2
1 | work in progress | 2019-10-16 09:00:00 | 3 | 2

请帮我查询

我可以在其中获取 no_of_users 大于 count(bookings) 的所有供应商,其中 booking_datetime >= date_start_time 和 booking_datetime < date_end_time 且 booking_status 不在 ['completed', 'rejected', 'cancelled'] 中

如果我可以从一个查询获得这些结果,我应该使用多个查询还是应该更改我的数据库结构,任何建议都将不胜感激

我想要的输出只是一个 user_ids,其在该时间段内可用,并且其用户数量大于该时间段的预订数量

最佳答案

这是你想要的吗?

       Select  b.vendor_id from 
bookings b join vendor_available_time v on b.vendor_id=v.id
where b.booking_datetime >= v.date_start_time and
b.booking_datetime < v.date_end_time
and b.booking_status not in ['completed', 'rejected', 'cancelled']

group by b.vendor_id having count(distinct b.id) <=count(b.customer_id)

关于mysql - SQL检查列中的值大于行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58465217/

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