Tsql 带分组的T-SQL查询

Tsql 带分组的T-SQL查询,tsql,group-by,distinct,Tsql,Group By,Distinct,我有一个如下所示的查询 SELECT t1.Name, t2.ID, t2.name FROM table1 t1 INNER JOIN table2 t2 ON t1.ID = t2.ID 这给了我一个巨大的价值清单。但我真正想要的只是t1.Name的不同值,而是t2.ID和t2.Name的相关值 我能想到的唯一方法是使用GROUPBY子句,但是我必须在t2.ID和t2.name上使用聚合函数。我使用了MIN/MAX,但是我为t2.ID和t2.name获取的值可能

我有一个如下所示的查询

SELECT t1.Name,
       t2.ID,
       t2.name
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID
这给了我一个巨大的价值清单。但我真正想要的只是t1.Name的不同值,而是t2.ID和t2.Name的相关值

我能想到的唯一方法是使用GROUPBY子句,但是我必须在t2.ID和t2.name上使用聚合函数。我使用了MIN/MAX,但是我为t2.ID和t2.name获取的值可能不是来自同一行

我肯定我在这里遗漏了一些简单的东西。谢谢你们的帮助

编辑: 这是实际的查询

SELECT (wi.wi_wpsnumbers), ws.*
FROM wi_weld_instance wi
INNER JOIN wlds_weld_section ws ON wi.weldinstanceid = ws.weldinstanceid
这是返回的前几行:

*999             100633    106*
*120,200,400     100656 44*
120,200,400   100656    46
120,200,400   100656    47
120,200,400   100656    48
120,200,400   100656    49
120,200,400   100656    50
120,200,400   100656    51
*123             100657 46*
123              100658 46
123              100659 46
123              100660 46

所以我真正想要的是第一排,然后是第二排。。。其中123出现在第一列中,等等。我用星号标记了这些行。

有一个
不同的
关键字

SELECT DISTINCT t1.Name,
       t2.ID,
       t2.name
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID

关于DISTINCT from MSDN:'的相关信息指定结果集中只能出现唯一的行。空值对于DISTINCT关键字来说是相等的。

听起来您只需要使用DISTINCT关键字,您似乎已经暗示了这一点

SELECT  DISTINCT(t1.Name),
   t2.ID,
   t2.name
FROM table1 t1
INNER JOIN table2 t2 ON t1.ID = t2.ID

我认为你必须发布更多关于问题性质的信息,以便获得对你真正有用的帮助。例如,表1和表2之间的FK关系的性质是什么?您使用此查询的上下文是什么?等等…ID上有FK关系。我们正试图使用该查询作为已发生焊接的证据。这就是为什么我试图删除第一列中的重复值,因为每个焊接类型只需要一个示例。我从其他海报上猜测,这里的tSQL语法与MySQL有点不同。失去Parensing distinct查找不同的行,即在所有三列中都有不同的值,我只希望在第一列中有不同的值。@gazamatazzer-如果一个特定的t1.Id对应于t2中的几行,这需要某种程度上的任意决定来决定要包含哪一行这是真的,我不介意t2.ID和t2.Name的值是什么,只要这两个值来自表2中的同一行。我刚刚接受了这一点,因为您试图帮助我,我正在重新提出一个更好的问题。感谢使用distinct查找不同的行,即在所有三列中都有不同的值,我只希望在第一列中有不同的值。那么我们可以得到一个带有样本返回值的样本表吗?我不完全理解你想要什么回报。