我有一个表T1,它有3列bpm_no、winame和entrytime。每个bpm_no在特定的winame (阶段)打开,并且winame可能是不同的,也可能是相同的(重复)。并在entrytime列中捕获了它的开启时间。我有另一个查找表T2,其中一个bpm_no将显示bpm_no当前存在的特定winame。
其思想是使用这两个表提取一个数据,以生成最终的表,其中它将显示bpm_no、其当前的winame和将是最小值的winame条目日期。请参考下面的例子
查找表T2:
+---------------------+------------------+
| bpm_no | winame |
+---------------------+------------------+
| abc_0011 | rm |
| lmn_0012 | archive |
| xyz_0013 | lmn |表T1:
+---------------------+------------------+------------------+
| bpm_no | winame | entrytime |
+---------------------+------------------+------------------+
| abc_0011 | pending | 07 June 18 |
| abc_0011 | rm | 06 June 18 |
| abc_0011 | rm | 11 June 18 |
| lmn_0012 | archive | 9 May 18 |
| lmn_0012 | rm | 10 May 18 |
| lmn_0012 | archive | 10 May 18 |
| xyz_0013 | lmn | 11 May 18 |
| xyz_0013 | lmn | 10 May 18 |
| xyz_0013 | intro | 06 May 18 |期望产出:
+---------------------+------------------+------------------+
| bpm_no | winame | entrytime |
+---------------------+------------------+------------------+
| abc_0011 | rm | 06 June 18 |
| lmn_0012 | archive | 9 May 18 |
| xyz_0013 | lmn | 10 May 18 |在这个例子中,我有3 bpm_no abc_0011,lmn_0012,xyz_0013。如果您查看表T2,bpm_no分别位于rm、bpm_no和lmn。在表T2中,它显示了bpm_no的历史,was名称从哪个was中划过bpm_no,以及对于相同的entry_time是什么。因此,我们只需要从T1中选择那些winame,它同样躺在T2查找表中,然后计算并存储最小的入口时间。
发布于 2018-06-12 08:55:02
SELECT
t1.bpm_no,
t1.winame,
min(entrytime) min_entrytime
FROM
t1 JOIN t2
ON t1.bpm_no = t2.bpm_no
AND t1.winame = t2.winame
GROUP BY
t1.bpm_no,
t1.winame;https://stackoverflow.com/questions/50812822
复制相似问题