0

タイムテーブルソリューションの作成を検討しています。次のようなタスクシートがあります

エリア1アイテム
1startTimeendTimeエリア1アイテム1startTimeendTime

endTimeまたはstartTimeのいずれかで、次に何が起こっているかを表示できるディスプレイを作成したいと思います。

すなわち

ニューカッスルリール16:4518:45ニューカッスルリール
217:4519:45

出力します

ニューカッスルリール16:45
ニューカッスルリール17:45
ニューカッスルリール18:45
ニューカッスルリール19:45

さらに、時刻がstartTimeであるかendTimeであるかを検出したいのですが、アクティビティごとに2つの行(time、area、item、start | end)を入力する必要があります。2つの行を作成するためのインターフェイスを作成できます。もっと良い解決策があるのだろうかと思いました。

4

2 に答える 2

0

あなたはイベントテーブルを持つことができます

  • id
  • 時間
  • タイプ(開始または終了)
  • イベント詳細ID

およびイベント詳細テーブル

  • id
  • 説明

その後、行うことができますselect time, type, description from event left join event_details on event.details_id = event_details.id order by time

これにより、目的の出力が得られます。

各行に開始時刻と終了時刻を含む出力を取得する場合は、のような操作を行う必要があります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

于 2010-04-15T23:23:49.033 に答える
0

既存のスキーマでは、次のクエリが機能するはずです。

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

基本的に、すべての開始時刻を選択してから終了時刻を選択し、並べ替えます。

于 2010-04-15T23:36:11.273 に答える