新文章 网摘 文章 随笔 日记

一对多Join时取多个记录中的第一条数据作为某列的值

SELECT s.sn,(
		SELECT v.createtime
		FROM (
			SELECT t.createtime, t.sn
			FROM spareparts_qesamplestate a
				LEFT JOIN (
					SELECT *
					FROM (
						SELECT b.sn, b.createtime, row_number() OVER (PARTITION BY b.sn ORDER BY b.createTime DESC) AS px
						FROM spareparts_qescanhistory b
						WHERE transtype = 0
					) e
					WHERE px = 1
				) t
				ON a.sn = t.sn
		) v
		WHERE v.sn = s.sn
	) AS creattime
FROM spareparts_qesamplestate s;

  

posted @ 2020-01-15 18:52  岭南春  阅读(394)  评论(0)    收藏  举报