Sql 从联接表中选择最大列

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

联接的表将产生如下视图。我只想选择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_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