Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询示例中的SQL计算时间/日期_Mysql_Sql - Fatal编程技术网

Mysql 查询示例中的SQL计算时间/日期

Mysql 查询示例中的SQL计算时间/日期,mysql,sql,Mysql,Sql,数据库架构包括: 公司(身份证、公司名称) 行程(行程号、身份证、公司、飞机、出发地、目的地、超时、入境时间) 通过行程(行程编号、日期、ID、地点) Company表具有运送乘客的公司的ID和名称。行程表包含有关行程的信息:行程编号、公司ID、飞机类型、出发城市、到达城市、出发时间和到达时间。Pass_in_trip table包含航班信息:航班号、出发日期(天)、乘客ID和航班期间的位置。应该看到,, -每天都在完成任何一次旅行;航班持续时间少于一个日历日(24小时);从镇到镇; -时间和日

数据库架构包括:

  • 公司(身份证、公司名称)
  • 行程(行程号、身份证、公司、飞机、出发地、目的地、超时、入境时间)
  • 通过行程(行程编号、日期、ID、地点)
  • Company表具有运送乘客的公司的ID和名称。行程表包含有关行程的信息:行程编号、公司ID、飞机类型、出发城市、到达城市、出发时间和到达时间。Pass_in_trip table包含航班信息:航班号、出发日期(天)、乘客ID和航班期间的位置。应该看到,, -每天都在完成任何一次旅行;航班持续时间少于一个日历日(24小时);从镇到镇; -时间和日期被认为是相对的一个时区; -出发时间和到达时间在一分钟内给出

    问:对于每个公司,找出公司飞机在完成飞行过程中花费的时间。结果集:公司名称、时间(分钟)

    A:

    选择Z.name,
    总和(
    案例
    
    DATEDIFF时(mi、超时、超时)这会有所不同,因为你使用
    选择DISTINCT
    。如果你有两行名称相同的
    行,trip\u no,time\u out,time\u in
    ,DISTINCT会将它们组合在一起,如果你不通过
    日期来区分它们,那么DISTINCT也可以告诉我日期的符号。我不明白为什么用它来查找完成航班。这是一列在
    pass\u in\u trip
    表中。它没有任何其他意义。但是为什么用它来查找完成航班,我真的不明白你为什么要加入所有这些表。我真的不理解你的设计。
    pass\u in\u trip
    表是关于乘客的,为什么旅行日期在该表中,而不是在
    trip
    ta中ble?这是我试图解决的一个在线sql问题。该模式不是我设计的,但我认为它与乘客的关系更密切,因为它能告诉他们什么时候去旅行。由于每个表都应该有唯一的列(变量),您可以很容易地将其与旅行表连接以查找旅行日期。
    select Z.name,
    sum ( 
    CASE
    WHEN DATEDIFF(mi,time_out,time_in) <0
    THEN DATEDIFF(mi,time_out,time_in) + 1440
    ELSE DATEDIFF(mi,time_out,time_in)
    END) as minutes
    from (
    
      select distinct C.name,T.trip_no,    DATE   ,time_out,time_in  
      from Pass_in_trip as Pt
      JOIN Trip as T
      ON T.trip_no=Pt.trip_no
      JOIN Company as C
      ON C.ID_comp = T.ID_comp
    ) Z
    group by Z.name