我目前有这个查询:
SELECT [Description]
,[Inspection_No]
,[InspectionSpecification_No]
,[Description]
,[Class]
,[Notes]
,[InspectionDate]
,[Job]
,[Lot]
,[Result]
,[CreateDate]
,[SampleNumber]
FROM
(SELECT
[Inspection_No]
,[InspectionSpecification_No]
,[Description]
,[Class]
,[Notes]
,[InspectionDate]
,[Job]
,[Lot]
,[Result]
,[CreateDate]
,[SampleNumber]
,ROW_NUMBER() OVER (partition BY [Lot], [Description], [SampleNumber]
ORDER BY [InspectionDate] DESC) rn
FROM [A].[dbo].[PT_Inspection]) tmp
WHERE rn = 1 AND [Lot] IS NOT NULL AND ([InspectionDate] > DATEADD(DAY, - 600, GETDATE())) and [Lot] = @LotNumber and [Job] is not null and Job != ''
哪个效果很好。它带来了我需要的所有数据。我想将这些数据限制为每个[描述]的最高[SampleNumber]。我一直试图将它全部插入临时表中,但我似乎无法弄清楚如何。如果我设法将它全部放入temptable然后调用它,我将如何为每个[Description]返回最高[SampleNumber]的所有数据列。我还在学习SQL和StackOverflow的新手,所以如果我需要包含任何进一步的信息,请告诉我。 谢谢!
答案 0 :(得分:2)
如果您想要每个描述的最高样本编号,那么只需更改row_number()
中的分区/排序条款:
ROW_NUMBER() OVER (PARTITION BY [Description]
ORDER BY [SampleNumber] DESC, [InspectionDate] DESC
) rn