可以通过两个时间戳进行排序并显示同一行两次

发布于 2024-08-29 06:02:31 字数 486 浏览 9 评论 0原文

我正在考虑创建一个时间表解决方案。 我有一个任务表,看起来像

区域 1 项目 1 开始时间 结束时间
区域1 item1 startTime endTime

我希望创建一个显示,我可以在其中查看接下来发生的事情,endTime 或 startTime

纽卡斯尔卷轴 16:45 18:45
纽卡斯尔卷轴2 17:45 19:45

会输出

纽卡斯尔卷轴 16:45
纽卡斯尔转盘 17:45
纽卡斯尔卷轴 18:45
纽卡斯尔卷轴 19:45

更重要的是,我想检测时间是开始时间还是结束时间,我必须为每个活动输入两行(时间、区域、项目、开始|结束)。我可以让界面创建两行。我只是想知道是否有更好的解决方案。

I'm looking at creating a time table solution.
I have a task sheet that looks like

Area 1 item 1 startTime endTime
Area 1 item1 startTime endTime

I wish to create a display where I can view what even is happening next, either endTime or startTime

i.e.

Newcastle reel 16:45 18:45
Newcastle reel2 17:45 19:45

would output

Newcastle reel 16:45
Newcastle reel 17:45
Newcastle reel 18:45
Newcastle reel 19:45

More so, I would like to detect if the time is a startTime or an endTime would I have to enter two rows for each activity (time,area,item, start|end). I can make the interface to the creation of two rows. I just wondered if there was a better solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小姐丶请自重 2024-09-05 06:02:31

使用现有架构,此查询应该可以工作:

SELECT * FROM
((SELECT Area, Item, startTime AS eventTime FROM tasks)
UNION
(SELECT Area, Item, endTime FROM tasks)) AS t
ORDER BY eventTime

基本上,您选择所有开始时间,然后选择结束时间,然后对它们进行排序。

With your existing schema, this query should work:

SELECT * FROM
((SELECT Area, Item, startTime AS eventTime FROM tasks)
UNION
(SELECT Area, Item, endTime FROM tasks)) AS t
ORDER BY eventTime

Basically, you're selecting all the start times, then the end times, then sorting them.

双手揣兜 2024-09-05 06:02:31

您可以有一个带有

  • id
  • 时间
  • 类型(开始或结束)
  • 事件详细信息 id 的事件表

和一个带有

  • id
  • 描述

的事件详细信息表,然后您可以执行 select time, type, description from event left join event_details on event.details_id = event_details .id 按时间排序

这应该会给你想要的输出。

如果您想获得每行中包含开始和结束时间的输出,那么您需要执行类似 select event_details.description, min(time) as start, max(time) as end from event left join event_details on event .details_id = event_details.id 按 event_details.description 分组

You could have an event table with

  • id
  • time
  • type (start or end)
  • event details id

and an event details table with

  • id
  • description

You can then do select time, type, description from event left join event_details on event.details_id = event_details.id order by time.

This should give you the desired output.

If you want to get output with start AND end times in each row, then you need to do something like select event_details.description, min(time) as start, max(time) as end from event left join event_details on event.details_id = event_details.id group by event_details.description.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文