Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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
使用内部联接时使用不同值的SQL查询_Sql_Sql Server - Fatal编程技术网

使用内部联接时使用不同值的SQL查询

使用内部联接时使用不同值的SQL查询,sql,sql-server,Sql,Sql Server,避免先前发布的问题 我使用内部联接来联接表,lotid和date来自test表,worker来自test1表。我正在使用分组依据,但它不起作用,因为worker和date列不同 lotid worker date 1234 abc 02/02/2106 1234 xyz 03/03/2016 但在输出中,我应该只得到1洛蒂 lotid worker date 1234 abc 02/02/2016 如何实现这一点?我让简单的表和简单的查询使用下面的DENSE\u RA

避免先前发布的问题

我使用内部联接来联接表,
lotid
date
来自
test
表,
worker
来自
test1
表。我正在使用
分组依据
,但它不起作用,因为worker和date列不同

lotid worker date
1234  abc    02/02/2106
1234  xyz    03/03/2016
但在输出中,我应该只得到1洛蒂

lotid worker date
1234   abc   02/02/2016

如何实现这一点?

我让简单的表和简单的查询使用下面的DENSE\u RANK()

结果是:

洛蒂德|工作日| 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

我正在使用mssql数据库我的建议您是否使用RANK()或DENSE_RANK()仅获取1个lotid请在url中查看下面的url我看到productid正在重复,但具有不同的等级,但这无助于我的原因您尝试了什么查询?从测试内部选择lotid,date,worker在测试时加入test1。lotid=test1.totid group by lotid,date,沃克尔我很接近,但如果我的排名是2,2,3,4,5,5。如何只计算一次2和5的当前结果是什么?上面的查询只是一个场景,在查看了您的代码后,我尝试使用dense_rank(),如果存在重复的lotid,我会将排名设置为2,2,以此类推。所以,如果我不明白你是否遵循我的查询结果,那么如何计算它?结果集不得包含秩=2,lotid不得重复。你能发布你得到的部分结果和你的查询库大小pcktno毛重数量平衡lotid LotName Worker TrsDate 1 2CT Q161124 2.042 1 71717011 R16106921-0034 Warut Suwannarat 2016-02-03 12:42:00吗2016年02月02日05:45:00第二季度Q161124 1.842 1 71717038 R16106921-0042 Piyanat Prakit 2016-02-02 05:45:00第二季度Q161124 1.842 1 71717038 R16106921-0042 Sirirat Phasaengentharn 2016-02-02 09:02:52:00第二季度Q161124 2.060 1 717045 R16106026921-0048 Warut Suwannarat 2016-02-03 09:49:00
select lotid,
max(worker) as worker
max(trsdate) as max_date
from test
inner join test1
on test.lotid=test1.lotid
group by lotid