javascript - 通过 T-SQL 查询或 C# 或 Javascript/AngularJs 1 从多列和行中获取具有最高日期的记录

标签 javascript c# sql angularjs tsql

假设我有这个 MS SQL 表,实际上它是包含 5 个表的查询的结果:

enter image description here

ID  SOrder  Line    Date1   Date2   Date3   SomeColumn
1   123a456 10  2018-01-01  2018-01-01  2018-01-01  abc
2   123a456 10  2018-01-01  2019-01-01  2018-01-01  def
3   123a456 10  2019-01-01  2018-01-01  2020-01-01  ghi
4   123a456 10  2018-01-01  2018-01-01  2019-01-01  jkl
5   123a456 10  2018-01-01  2018-01-01  2018-01-01  mno
6   123a456 20  2018-01-01  2020-01-01  2018-01-01  prs
7   123a456 20  2019-01-01  2018-01-01  2019-01-01  tuv
8   123a456 20  2018-01-01  2018-01-01  2018-01-01  xxx
9   123a456 30  2018-01-01  2020-01-01  2018-01-01  yyy
10  123a777 10  2019-01-01  2019-01-01  2018-01-01  zzz
11  123a777 10  2020-01-01  2019-01-01  2019-01-01  111
12  123a777 20  2019-01-01  2018-01-01  2018-01-01  222
13  123a777 20  2021-01-01  2019-01-01  2019-01-01  333
14  123a777 20  2018-01-01  2018-01-01  2020-01-01  444

我只想提取 ID=3,6,9,11,13 且日期最高的行。因此,从 Line 列值等于 10 的前 5 条记录中,我只想要 ID=3 的行,因为它具有 5 条记录中最高的日期 (2020-01-01)。

1) 如何通过 T-SQL 查询实现此目的?

2) 或者,我可以执行一个简单的 SELECT * FROM MyTable 并在 C# 或 Javascript/AngularJs 1 中执行上述过滤。但是如何实现呢?

最佳答案

使用下面的代码你可以得到你的答案。

CREATE TABLE #T1
(
    ID int
    ,SOrder VARCHAR(20)
    ,Line int
    ,Date1 datetime
    ,Date2 Datetime
    ,Date3 Datetime

)

;with cte as (
    SELECT ID,Line,SOrder, Date1 from #T1
    union
    SELECT ID,Line,SOrder, Date2 from #T1
    union
    SELECT ID,Line,SOrder, Date3 from #T1
)

SELECT T.* FROM #T1 T
INNER JOIN (SELECT max(Date1) as Date1,Line,SOrder FROM cte GROUP BY Line,SOrder) DT 
            ON  (DT.Date1=T.Date1 OR DT.Date1=T.Date2 OR DT.Date1=T.Date3)
            AND (DT.Line=T.Line)
            AND (DT.SOrder=T.SOrder)

关于javascript - 通过 T-SQL 查询或 C# 或 Javascript/AngularJs 1 从多列和行中获取具有最高日期的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52036424/

相关文章:

JavaScript 错误 : Uncaught TypeError: Cannot set property 'value' of null

javascript - jQuery Carousel Plugin 按钮延迟问题

c# - 尝试使用 PowerShell 列出 Azure 文件服务中的共享时身份验证失败

mysql - SQL查询对相同数据的不同列具有不同的平均值

MySQL 多重左连接限制

javascript - react : import local files from a dynamic location

javascript - 如何使用 Html5 地理定位链接到 google map 打印方向?

c# - 方法阻塞 UI 线程

c# - 在不安装 Visual Studio 的情况下在计算机上调试代码

sql - 如何通过 Postgres 中的检查约束来验证 URL?