Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SQL语句从下面的数据中检索数据_Sql - Fatal编程技术网

如何使用SQL语句从下面的数据中检索数据

如何使用SQL语句从下面的数据中检索数据,sql,Sql,我有一个表TestTable,其中包含以下示例数据: |ID | Desc | CommentDate | qty | light +-----+---------+-----------------------------+-----+-------- | A11 | EYE | 2019-01-01 01:00:00.000 | 10 | 20 | A11 | WOMEN | 2019-01-01 05:00:00.000

我有一个表
TestTable
,其中包含以下示例数据:

|ID   | Desc    | CommentDate                 | qty |  light
+-----+---------+-----------------------------+-----+--------
| A11 | EYE     | 2019-01-01 01:00:00.000     | 10  |   20
| A11 | WOMEN   | 2019-01-01 05:00:00.000     | 15  |   13
| A11 | SUG     | 2019-01-02 00:00:00.000     | 10  |   20
| B11 | WOMEN   | 2019-01-02 00:00:00.000     | 20  |   30
我试图从上面的
TestTable
检索数据。我还没有得到实际的结果返回数据

如果
ID
有多个注释日期,则从ID的组顶部日期中获取所有注释日期。 预期结果应低于预期

|ID   | Desc    | CommentDate                 | qty |  light
+-----+---------+-----------------------------+-----+--------
| A11 | EYE     | 2019-01-01 01:00:00.000     | 10  |   20
| A11 | WOMEN   | 2019-01-01 05:00:00.000     | 15  |   13
| B11 | WOMEN   | 2019-01-02 00:00:00.000     | 20  |   30

您可以尝试下面的SQL查询来获取结果集

 ;WITH CTE AS( SELECT    [Id] ,[Desc] ,[CommentDate] ,[Qty],[Light]  ,
 DENSE_RANK() OVER (PARTITION BY [Desc] ORDER BY CONVERT(DATE, [CommentDate]) ASC) RN  FROM TestTable )
 SELECT * FROM CTE   WHERE RN =1 
此处
按[CommentDate]排序ASC
将按
CommentDate
的ASC顺序对结果进行排序如果您想要最后的日期记录,请在此处使用
按[CommentDate]描述排序

现场测试:

输出:

RN  ID  Desc    CommentDate         qty light
1   A11 EYE     01/01/2019 01:00:00 10  20
1   A11 WOMEN   01/01/2019 05:00:00 15  13
1   B11 WOMEN   02/01/2019 00:00:00 20  30

这是什么数据库?谢谢你的回答,但还没有解决。有两种类型的ID,需要记录每个ID的顶部日期。应返回A11=>A11,EYE,2019-01-01和A11女性,2019-01-01和B11,女性,2019-01-02。不应返回A11,SUG,2019-01-02。
RN  ID  Desc    CommentDate         qty light
1   A11 EYE     01/01/2019 01:00:00 10  20
1   A11 WOMEN   01/01/2019 05:00:00 15  13
1   B11 WOMEN   02/01/2019 00:00:00 20  30