【发布时间】:2019-12-25 23:20:58
【问题描述】:
我很好奇你们中是否有人能帮我计算出某条船BoatID 仅用于豪华旅行BoutTourID = Luxury 由不同船长@ 987654326@,
现在是奇怪的部分:直到下一个标准巡回赛BoutTourID = Standard 开始。我不想将已取消的行程考虑在内Status = Cancelled。
CaptainID BoatID BoatTourID Status TravelStart TravelEnd
Jack AlphaBoat Standard 1-7-2019 20-7-2019
Kevin AlphaBoat Luxury 21-7-2019 31-7-2019
Eric AlphaBoat Luxury Cancelled 1-8-2019 10-8-2019
Nick AlphaBoat Standard 11-8-2019 20-8-2019
John AlphaBoat Luxury 21-8-2019 30-8-2019
Lionel BigBoat Standard 1-8-2019 20-8-2019
Jeffrey BigBoat Luxury 20-8-2019 25-8-2019
Chris BigBoat Standard 26-8-2019 28-8-2019
这在 SQL 中应该给出以下结果,因此在基础表中显示的记录数量完全相同:
CaptainID
Jack 0 --since BoatTourID = Standard, it should not be calculated
Kevin 10
Eric 0 --since Status = Cancelled
Nick 0
John 9
Lionel 19
Jeffrey 5
Chris 2
应该可以在 1 个 SQL 查询中运行它。
到目前为止我写的代码很乱,还没有接近解决它,所以我宁愿不发布它,因为我希望有一个新的想法。以防万一我仍然会发布它,如果需要的话!
【问题讨论】:
标签: sql-server sql-server-2012