小编Bri*_*hak的帖子

视图与函数来获取表的顶部记录?

我正在和一位同事讨论解决问题的方法。

我们有一个表来跟踪填充过程,该表在列Lot和上具有唯一的索引列(或至少应该) TestGrade

最近,我们添加了逻辑,以便当TestGrade创建大于 1 的任何值时,所有较低级别都会被创建。完成了一些逻辑,因此较低级别的行不一定与顶层相同。

例如,我插入一些东西Lot='ABCD'TestGrade=5然后在我的Fills表中我看到

id    Lot    TestGrade   OtherColumns
======================================
10    'ABCD'     1          blah3
9     'ABCD'     2          bar
8     'ABCD'     3          foo
7     'ABCD'     4          blah1
6     'ABCD'     5          blah
Run Code Online (Sandbox Code Playgroud)

现在的问题是在许多情况下,我只想要 Fills 表的顶级记录,因此在示例中,我只想要带有id=6.

关于如何做到这一点,我们有两个想法。我想做一个看起来像

CREATE VIEW [dbo].[vwFills]
AS
SELECT t.* FROM [dbo].[Fills] t
JOIN (SELECT [Lot], MAX(TestGrade) as TestGrade FROM dbo.Fills GROUP BY [Lot]) t2 ON t.[Lot] = t2.[Lot] AND t.[TestGrade] = t2.[TestGrade]
Run Code Online (Sandbox Code Playgroud)

我的同事想做类似的事情,但在一个看起来像这样的函数内

ALTER …
Run Code Online (Sandbox Code Playgroud)

sql-server view functions

6
推荐指数
1
解决办法
1415
查看次数

标签 统计

functions ×1

sql-server ×1

view ×1