我有一组数据,需要在select max(date)上返回相应的行

时间:2019-01-10 08:25:25

标签: sql-server

我有一组数据,试图获取最大日期和与所选if (!/([A-Z]|[a-z])/.test(userInput3)){ /* do something if userInput3 contains anything other than the letters a-z in upper or lower case */ } 相对应的数据。

这是我的示例表

max(date)

查询

ch_no       ch_stat  d_issue
10461536    UB       2018-04-06 00:00:00.000
10462330    UB       2018-05-04 00:00:00.000
10575171    UB       2018-06-05 00:00:00.000
10593518    UB       2018-07-09 00:00:00.000
10613044    UB       2018-08-02 00:00:00.000
10641949    UB       2018-09-04 00:00:00.000
10643136    UB       2018-10-09 00:00:00.000
10670638    UB       2018-11-05 00:00:00.000

我想返回结果是

select max(d_issue),max(ch_no)from carlos.claims_checks

2 个答案:

答案 0 :(得分:0)

这是我的提案查询

DECLARE @MyDataset AS TABLE
(
  ch_no INT ,
  ch_stat  CHAR(10),
  d_issue DATETIME2 
)

INSERT INTO @MyDataset (   ch_no ,
                           ch_stat ,
                           d_issue
                       )
VALUES (   10461536 ,             -- ch_no - int
           'UB' , -- ch_stat - datetime2
           '2018-04-06 00:00:00.000'               -- d_issue - int
       ),
(   10462330 ,             -- ch_no - int
           'UB' , -- ch_stat - datetime2
           '2018-05-04 00:00:00.000'               -- d_issue - int
       ),
       (   10575171 ,             -- ch_no - int
           'UB' , -- ch_stat - datetime2
           '2018-06-05 00:00:00.000'               -- d_issue - int
       ),
       (   10593518 ,             -- ch_no - int
           'UB' , -- ch_stat - datetime2
           '2018-07-09 00:00:00.000'               -- d_issue - int
       ),
       (   10641949 ,             -- ch_no - int
           'UB' , -- ch_stat - datetime2
           '2018-09-04 00:00:00.000'               -- d_issue - int
       ),
       (   10670638 ,             -- ch_no - int
           'UB' , -- ch_stat - datetime2
           '2018-11-05 00:00:00.000'               -- d_issue - int
       );

WITH MyCTE AS
(
SELECT MAX(d_issue) AS selected_date
FROM @MyDataset
),
MYCTE_chno AS
(
SELECT TOP 1 ch_no,MCT.selected_date
FROM @MyDataset AS MDS
INNER JOIN MyCTE MCT
ON MDS.d_issue=MCT.selected_date
)
SELECT * FROM MYCTE_chno

答案 1 :(得分:0)

我认为最简单的查询就是这个

SELECT cc.d_issue,cc.ch_no
FROM carlos.claims_checks cc
WHERE cc.d_issue = (SELECT MAX(d_issue) FROM carlos.claims_checks)

如果只希望每个ch_no的最大日期,请执行以下操作:

SELECT MAX(d_issue), ch_no FROM carlos.claims_checks GROUP BY ch_no