[英]SQL query with distinct values while using inner join
避免以前发布的问题。
我正在使用内部lotid
表, lotid
和date
来自test
表,而worker
程序来自test1
表。 我正在使用group by
但由于工作人员和日期列不同,因此无法正常工作
lotid worker date
1234 abc 02/02/2106
1234 xyz 03/03/2016
但在输出中我应该只得到1个lotid
lotid worker date
1234 abc 02/02/2016
如何实现?
我使简单的表和简单的查询使用下面的DENSE_RANK()
CREATE TABLE #test (lotid NVARCHAR(10), workDate DATETIME)
CREATE TABLE #test1 (lotid NVARCHAR(10),worker NVARCHAR(10) )
INSERT INTO #test VALUES ('1234','2016-02-02'),('1234','2016-03-03')
INSERT INTO #test1 VALUES ('1234','abc'),('1234','xyz')
SELECT *
FROM (
SELECT DISTINCT t.*
,DENSE_RANK() OVER (PARTITION BY t.lotid ORDER BY t.workDate ASC) AS [r]
FROM #test t
INNER JOIN #test1 t1 ON t.lotid = t1.lotid
) q
WHERE q.r = 1
DROP TABLE #test
DROP TABLE #test1
结果是:
lotid | 工作日期| [R
1234 | 2016-02-02 00:00:00.000 | 1
感谢您的所有帮助,但我想出了解决方案,
select lotid,
max(worker) as worker
max(trsdate) as max_date
from test
inner join test1
on test.lotid=test1.lotid
group by lotid
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.