SQL如何对另一个表中的条件有条件地求和

时间:2019-07-31 00:19:37

标签: sql

我需要查询用户可用的服务器总时间:在服务器可用的那一天,每个服务器必须在线。

我拥有的服务器状态数据来自下表(表1):

serverid   status    changedate  changestatusid
server2    Offline   10-02-19    1 
server2    Online    26-02-19    2
server1    Online    01-04-19    3  
server1    Offline   02-05-19    4
server1    Online    06-05-19    5   
server2    Offline   15-07-19    6

每天的可用时间来自另一个表,并且取决于用户-userclass-(表2)的类型:

Location  userclass  date      timeavail 
PERU      type-A     01-04-19  08:00 
PERU      type-B     01-04-19  06:00
USA       type-A     01-04-19  08:00
USA       type-C     01-04-19  07:00
PERU      type-A     02-04-19  08:00

最后,用户注册在另一个表(Table3)上:

userid  firstname  lastname  userclass  location
user1   Juan       Obrero    type-A     PERU
user2   Michael    Stevens   type-B     USA
user3   Brett      McDonald  type-C     USA

到目前为止,我已经完成了:

select tb3.location,
       tb3.userid,
       tb2.date,
       sum(tb2.timeavail) as hours 
from Table3 as tb3
right join Table2 as tb2
on tb2.userclass = tb3.userclass

哪个汇总了从服务器到每个用户的总可用时间,但是我如何考虑服务器状态?

0 个答案:

没有答案