SQL获取不同行的时间

时间:2017-05-16 13:13:01

标签: sql database select

我想做一个选择,给我一个员工解决一张票的时间。 问题在于票证是按行动划分的,因此它不仅可以获得一行的时间,而且可以来自n行。

这是我所拥有的缩写:

门票

TicketID | Days | Hours | Minutes
------------------------------------------------
  12     |   0  |   2   | 32
  12     |   1  |   0   | 12
  12     |   4  |   6   | 0
  13     |   2  |   5   | 12
  13     |   0  |   2   | 33

这就是我想要的:

TicketID | Time (in minutes) 
------------------------------------------------
   12    |       2994
   13    |       1425

(或者只有一行具有指定TicketID的条件)

这是我现在正在做的选择:

select distinct ((Days*8)*60) + (Hours*60) + Minutes from Tickets where ticketid = 12

但是我没有按照自己的意愿工作。

3 个答案:

答案 0 :(得分:4)

select ticketid, sum((Days*8)*60), sum((Hours*60)), sum (Minutes)
from tickets
group by ticketid

答案 1 :(得分:3)

select TicketID, sum((Days*8)*60) + sum(Hours*60) + sum(Minutes) as Time_in_minutes
from Tickets 
group by TicketID

如您之前尝试的那样,区别于源表(Tickets)中的每一行并过滤掉所有重复的行。相反,您试图总结每张票的天数,分钟数和小时数。所以总结一下,按票号分组。

答案 2 :(得分:1)

试试这个:

SELECT  TicketID, (Sum(Minutes)+(Sum(Hours)*60)+(sum(Days)*24*60) ) time  
FROM  Tickets Group by TicketID