Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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_Mysql_Sql_Group By - Fatal编程技术网

使用最新值分组的MySql

使用最新值分组的MySql,mysql,sql,group-by,Mysql,Sql,Group By,我有一个相当长的查询,它从各种来源收集数据,以创建一个关于正在检查的作业的报告 只需添加一点上下文: 我有一张“工作”表。这些工作中的每一项都与特定的区域和位置相关联,并根据工作的难度给予复杂性评级。每项工作都由一名主管进行检查,从10分中打分,然后输入系统。根据它获得的分数,它会被给予一个复杂度等级和一个需要再次检查的时间间隔。i、 e.分数越低,检查的频率越高 我正在编写一个查询,通过ID、名称等收集每个作业,然后获取上次检查、下次检查的时间以及当前分数,谁将其输入到系统中以及检查作业的实际

我有一个相当长的查询,它从各种来源收集数据,以创建一个关于正在检查的作业的报告

只需添加一点上下文: 我有一张“工作”表。这些工作中的每一项都与特定的区域和位置相关联,并根据工作的难度给予复杂性评级。每项工作都由一名主管进行检查,从10分中打分,然后输入系统。根据它获得的分数,它会被给予一个复杂度等级和一个需要再次检查的时间间隔。i、 e.分数越低,检查的频率越高

我正在编写一个查询,通过ID、名称等收集每个作业,然后获取上次检查、下次检查的时间以及当前分数,谁将其输入到系统中以及检查作业的实际主管

不幸的是,我的查询没有给出最新的值,而是最不新的值。除了“上次检查”字段(见下文)。为此,MAX()函数正在工作;但是,这与其他字段无关。

以下是表和查询的明细:

表1:工作

Job_ID | Job_Name | Job_Area | Job_Location | Job_Complexity
1        MyJob      1          1              2
2        AnothJob   1          2              1
Area_ID | Area_Name
1         Area
Location_ID | Location_Area | Location_Name
1             1               MyLocation1
2             1               MyLocation2
User_ID | User_FirstName | User_LastName
1         Jane             Doe
Supervisor_ID | Supervisor_FirstName | Supervisor_LastName
1               John                   Doe
2               Barry                  Sheen
Check_ID | Check_Job_ID | Check_Date | Check_Score | Check_User | Check_Supervisor
1          1              27-03-17     8             1            1
2          1              28-03-17     5             1            2
3          1              29-03-17     6             1            2
表2:区域

Job_ID | Job_Name | Job_Area | Job_Location | Job_Complexity
1        MyJob      1          1              2
2        AnothJob   1          2              1
Area_ID | Area_Name
1         Area
Location_ID | Location_Area | Location_Name
1             1               MyLocation1
2             1               MyLocation2
User_ID | User_FirstName | User_LastName
1         Jane             Doe
Supervisor_ID | Supervisor_FirstName | Supervisor_LastName
1               John                   Doe
2               Barry                  Sheen
Check_ID | Check_Job_ID | Check_Date | Check_Score | Check_User | Check_Supervisor
1          1              27-03-17     8             1            1
2          1              28-03-17     5             1            2
3          1              29-03-17     6             1            2
表3:位置

Job_ID | Job_Name | Job_Area | Job_Location | Job_Complexity
1        MyJob      1          1              2
2        AnothJob   1          2              1
Area_ID | Area_Name
1         Area
Location_ID | Location_Area | Location_Name
1             1               MyLocation1
2             1               MyLocation2
User_ID | User_FirstName | User_LastName
1         Jane             Doe
Supervisor_ID | Supervisor_FirstName | Supervisor_LastName
1               John                   Doe
2               Barry                  Sheen
Check_ID | Check_Job_ID | Check_Date | Check_Score | Check_User | Check_Supervisor
1          1              27-03-17     8             1            1
2          1              28-03-17     5             1            2
3          1              29-03-17     6             1            2
表4:复杂性

Complexity_ID | Complexity_Label | Complexity_Interval_Days
1               Very Difficult     25
2               Difficult          35
SELECT
j.Job_ID,
a.Area_Name,
d.Location_Name,
j.Job_Name,
MAX(c.Checked_Date) as Last_Checked,
Date_Add(MAX(c.Checked_Date), interval r.Complexity_TimePeriod day) as Due_Date,
Datediff(Date_Add(MAX(c.Checked_Date), interval r.Complexity_TimePeriod day), Now()) as Due_Days,
c.Check_Score as Current_Score,
CONCAT(u.User_FirstName, ' ', u.User_LastName) as Entered_By,
CONCAT(s.Supervisor_FirstName, ' ', s.Supervisor_LastName) as Supervisor,
r.Complexity_Level

from Jobs_active j

left join pdc_admin.admin_areas a
on a.Area_ID = j.Job_area

left join pdc_admin.admin_Locations l
on l.Location_ID = j.Job_Location

left join Jobs_Checks c
on c.Check_Job_ID = j.Job_ID

left join pdc_admin.admin_users u
on u.user_id = c.Check_Person

left join Jobs_Complexity_config r
on r.Complexity_ID = j.Job_Complexity

left join admin_Supervisors s on
s.Supervisor_ID = c.Check_Supervisor

group by j.Job_ID
表5:用户

Job_ID | Job_Name | Job_Area | Job_Location | Job_Complexity
1        MyJob      1          1              2
2        AnothJob   1          2              1
Area_ID | Area_Name
1         Area
Location_ID | Location_Area | Location_Name
1             1               MyLocation1
2             1               MyLocation2
User_ID | User_FirstName | User_LastName
1         Jane             Doe
Supervisor_ID | Supervisor_FirstName | Supervisor_LastName
1               John                   Doe
2               Barry                  Sheen
Check_ID | Check_Job_ID | Check_Date | Check_Score | Check_User | Check_Supervisor
1          1              27-03-17     8             1            1
2          1              28-03-17     5             1            2
3          1              29-03-17     6             1            2
表6:主管人员

Job_ID | Job_Name | Job_Area | Job_Location | Job_Complexity
1        MyJob      1          1              2
2        AnothJob   1          2              1
Area_ID | Area_Name
1         Area
Location_ID | Location_Area | Location_Name
1             1               MyLocation1
2             1               MyLocation2
User_ID | User_FirstName | User_LastName
1         Jane             Doe
Supervisor_ID | Supervisor_FirstName | Supervisor_LastName
1               John                   Doe
2               Barry                  Sheen
Check_ID | Check_Job_ID | Check_Date | Check_Score | Check_User | Check_Supervisor
1          1              27-03-17     8             1            1
2          1              28-03-17     5             1            2
3          1              29-03-17     6             1            2
表7:检查

Job_ID | Job_Name | Job_Area | Job_Location | Job_Complexity
1        MyJob      1          1              2
2        AnothJob   1          2              1
Area_ID | Area_Name
1         Area
Location_ID | Location_Area | Location_Name
1             1               MyLocation1
2             1               MyLocation2
User_ID | User_FirstName | User_LastName
1         Jane             Doe
Supervisor_ID | Supervisor_FirstName | Supervisor_LastName
1               John                   Doe
2               Barry                  Sheen
Check_ID | Check_Job_ID | Check_Date | Check_Score | Check_User | Check_Supervisor
1          1              27-03-17     8             1            1
2          1              28-03-17     5             1            2
3          1              29-03-17     6             1            2
当前查询

Complexity_ID | Complexity_Label | Complexity_Interval_Days
1               Very Difficult     25
2               Difficult          35
SELECT
j.Job_ID,
a.Area_Name,
d.Location_Name,
j.Job_Name,
MAX(c.Checked_Date) as Last_Checked,
Date_Add(MAX(c.Checked_Date), interval r.Complexity_TimePeriod day) as Due_Date,
Datediff(Date_Add(MAX(c.Checked_Date), interval r.Complexity_TimePeriod day), Now()) as Due_Days,
c.Check_Score as Current_Score,
CONCAT(u.User_FirstName, ' ', u.User_LastName) as Entered_By,
CONCAT(s.Supervisor_FirstName, ' ', s.Supervisor_LastName) as Supervisor,
r.Complexity_Level

from Jobs_active j

left join pdc_admin.admin_areas a
on a.Area_ID = j.Job_area

left join pdc_admin.admin_Locations l
on l.Location_ID = j.Job_Location

left join Jobs_Checks c
on c.Check_Job_ID = j.Job_ID

left join pdc_admin.admin_users u
on u.user_id = c.Check_Person

left join Jobs_Complexity_config r
on r.Complexity_ID = j.Job_Complexity

left join admin_Supervisors s on
s.Supervisor_ID = c.Check_Supervisor

group by j.Job_ID
我想从中得到的是:

Job_ID | Area_Name | Location_Name | Job_Name | Last_Checked | Due_Date | Due_Days | Current_Score | Entered_By | Supervisor | Complexity_Level
1        Area      | MyLocation1     MyJob      29-03-17       03-05-17   35         6               Jane Doe     Barry Sheen  Difficult
如您所见,结果显示最新字段(即选中的分数/主管),但每个作业不显示超过1行。从本质上说,我只关注每一份工作的最新信息,而没有显示之前检查过的任何信息


信息过载。。。非常感谢您的帮助,谢谢

左对齐SQL,很难读取…分组依据无效!将在较新的MySQL版本上引发错误(除非处于兼容模式),或者在较旧的MySQL版本上返回不可预知的结果。常规GROUP BY规则规定:如果指定了GROUP BY子句,则SELECT列表中的每个列引用必须标识一个分组列,或者是集合函数的参数。左对齐SQL,很难读取…GROUP BY无效!将在较新的MySQL版本上引发错误(除非处于兼容模式),或者在较旧的MySQL版本上返回不可预知的结果。常规GROUP BY规则规定:如果指定了GROUP BY子句,则SELECT列表中的每个列引用必须标识一个分组列或是集合函数的参数。