Sql 从联接表中选择最大列
联接的表将产生如下视图。我只想选择max id或prod_month列的1条记录Sql 从联接表中选择最大列,sql,sql-server,tsql,Sql,Sql Server,Tsql,联接的表将产生如下视图。我只想选择max id或prod_month列的1条记录 con_model srt_value_current con_id prod_month id model 4 49 37 45145 model 4 49 38 45726 SELECT DISTINCT TOP (100) PERCENT dbo.DM_TBL_CONFIGURATION_MODEL.con_model, dbo.SRT_Data.SRT_VALUE_CURR
con_model srt_value_current con_id prod_month id
model 4 49 37 45145
model 4 49 38 45726
SELECT DISTINCT TOP (100) PERCENT dbo.DM_TBL_CONFIGURATION_MODEL.con_model, dbo.SRT_Data.SRT_VALUE_CURRENT, dbo.DM_TBL_CONFIGURATION_MODEL.con_id, dbo.SRT_Data.ID, dbo.SRT_Data.PROD_MONTH
FROM dbo.DM_TBL_CONFIGURATION_MODEL LEFT OUTER JOIN
dbo.SRT_ItemNumbers ON dbo.DM_TBL_CONFIGURATION_MODEL.con_model = dbo.SRT_ItemNumbers.ITEM_NUMBER LEFT OUTER JOIN
dbo.SRT_Data ON dbo.SRT_ItemNumbers.ID = dbo.SRT_Data.ITEM_NUMBER_ID
WHERE (SRT_Data.id) IN
( SELECT MAX(id)
FROM SRT_Data
)
and con_model='model'
如果需要一行,请使用
TOP(1)
:
我使用交叉申请
SELECT *
FROM dbo.DM_TBL_CONFIGURATION_MODEL a CROSS APPLY
(
Select Top 1 b.ID,dbo.SRT_Data.SRT_VALUE_CURRENT
From dbo.SRT_ItemNumbers b LEFT OUTER JOIN
dbo.SRT_Data ON b.ID = dbo.SRT_Data.ITEM_NUMBER_ID
Where b.ITEM_NUMBER = a.con_model
Order By ID Desc
) X
子查询
从({existing query})中选择top 1*
?请提供示例数据和所需结果。顺便说一下,了解别名,它们将使您的生活更轻松。和TOP(100%)PERCENT
你认为应该做什么?忘记你曾经学过的TOP(100)PERCENT
-它没有任何用处。如果使用它定义视图,引擎知道它可以(并且确实)安全地忽略它。视图和表一样,都是无序定义的。好的,谢谢。因为我使用的是SSMS中的自动生成视图。它并没有真正满足我的要求,因为我在这里使用的是视图。它将只显示一条来自联接表的顶级记录。@JL_Coder。我不知道你的评论是什么意思。无论引用是表还是视图,查询都是相同的。
SELECT *
FROM dbo.DM_TBL_CONFIGURATION_MODEL a CROSS APPLY
(
Select Top 1 b.ID,dbo.SRT_Data.SRT_VALUE_CURRENT
From dbo.SRT_ItemNumbers b LEFT OUTER JOIN
dbo.SRT_Data ON b.ID = dbo.SRT_Data.ITEM_NUMBER_ID
Where b.ITEM_NUMBER = a.con_model
Order By ID Desc
) X