【发布时间】:2016-06-07 17:03:38
【问题描述】:
我有 3 个表,分别名为 stop、detail 和 shift。我想做点什么,结果可以像图片一样
我很难做到这一点,请帮助我。
如果你们能帮助我,我将不胜感激:D
提前致谢
================================================ ===============
编辑:
谢谢你告诉我我必须做什么,所以这里是它
桌站:
- VehicleID -> varchar
- StopStart -> 日期时间
- StopEnd -> 日期时间
- 持续时间 -> 日期时间(StopEnd - StopStart)
表格详情:
- VehicleID -> varchar
- 状态(有空闲和驱动)-> varchar
- 开始时间 -> 日期时间
- StopTime -> 日期时间
- 持续时间 -> 日期时间(StopTime - StartTime)
表格移位:
- NoShift -> int
- 在 -> 日期时间(只需要几个小时)
- Out -> 日期时间(只需要几个小时)
result i expect 来自它:
一辆车有 3 个班次(1 2 3),并且驾驶怠速停止是从表格停止和细节(细节有状态所以它复杂)的持续时间的总和,它们必须通过班次与表格班次的进出时间相加
我不是查询专家,所以我不知道如何解决这个问题,我所做的查询不好,我只尝试根据停止表进行移位,但我没有不知道怎么用表移位加入它
这是我尝试过的
Select VehicleID,
Sum((select Duration from stop where DATEPART(hh,[StopStart]) >= 7 AND DATEPART(hh,[StopEnd]) <= 11)) AS Shift1,
Sum((select Duration from stop where DATEPART(hh,[StopStart]) >= 11 AND DATEPART(hh,[StopEnd]) <= 14)) AS Shift2,
Sum((select Duration from stop where DATEPART(hh,[StopStart]) >= 14 AND DATEPART(hh,[StopEnd]) <= 18)) AS Shift3
from Stop
Group By VehicleID
【问题讨论】:
-
屏幕截图不会有太大区别。发布一些示例数据和相关输出
-
图片上已有样本数据:D请点击
-
我们没有责任把所有东西都框起来放在你的盘子里
-
我想我已经在上面写了这个“我很难做到这一点,请帮助我,如果你们能帮助我,我将不胜感激:D”,因为我对此没有解决方案,这就是为什么我在这里寻求解决方案
-
欢迎来到 Stackoverflow Irvan。如果您想从其他用户那里获得一些有用的建议,最好包括您的表结构、您已经尝试过的代码、对您的问题的清晰描述、示例数据和预期的输出。你可以在这里找到关于如何写一个好问题的更详尽的描述:stackoverflow.com/help/how-to-ask
标签: sql sql-server datetime sql-server-2005