sql - 选择具有特定条件的最新行
问题描述
我有像这样的表1的任务进度表1。任务
ID | TaskID | IsPlanned | MondayOfWeekDate| Progress | UserID | TaskCreationDate
--------------------------------------------------------------------------------------------
18998 9917 1 2019-04-01 0 1150 2019-04-04 10:47:52.177
我需要选择进度<100且TaskCreationDate是最新的任务进度
我试过使用 group by 和 max 但我仍然得到重复的结果
到目前为止,这是我的 SQL
select TaskProgress.*
from
(select
TaskID, Max(Progress) as Progress, Max(TaskCreationDate) as TaskCreationDate
from
TaskProgress
group by
TaskID) as MaxValueTable
join
TaskProgress on TaskProgress.TaskID = MaxValueTable.TaskID
and MaxValueTable.Progress = TaskProgress.Progress
and TaskProgress.Progress < 100
我希望获得最新创建日期和最高进度点的任务
ID | TaskID | IsPlanned | MondayOfWeekDate| Progress | UserID | TaskCreationDate
--------------------------------------------------------------------------------------------
28885 19500 0 2019-03-25 90 1717 2019-03-25 07:57:36.560
但我仍然得到这个
ID | TaskID | IsPlanned | MondayOfWeekDate| Progress | UserID | TaskCreationDate
--------------------------------------------------------------------------------------------
28885 19500 0 2019-03-25 90 1717 2019-03-25 07:57:36.560
28696 19500 0 2019-03-11 90 1717 2019-03-16 20:57:57.373
28569 19500 0 2019-03-04 90 1717 2019-03-09 11:29:49.010
28485 19500 0 2019-02-25 90 1717 2019-03-02 18:12:25.587
28368 19500 0 2019-02-18 90 1717 2019-02-23 17:59:21.973
请帮我改正。先感谢您。
解决方案
您错过了 MaxValueTable.TaskCreationDate = TaskProgress.TaskCreationDate 的条件
select TaskProgress.*
from (
select
TaskID
, Max(Progress) as Progress
, Max(TaskCreationDate) as TaskCreationDate
from TaskProgress
group by TaskID) as MaxValueTable
join TaskProgress on TaskProgress.TaskID = MaxValueTable.TaskID
and MaxValueTable.Progress = TaskProgress.Progress
and TaskProgress.Progress < 100
and MaxValueTable.TaskCreationDate = TaskProgress.TaskCreationDate
推荐阅读
- php - 从远程数据库获取异常下载 JSON
- android - Recyclerview 每页只显示一个项目,但滚动显示其余项目
- ngrok - 如何让 ngrok 客户端监听特定的主机名而不是 localhost?
- c# - C#:Microsoft.VisualBasic.Interaction.AppActivate 没有效果
- c# - EventGridTrigger Azure 函数 - 如何立即将错误请求返回到死信
- java - 将文件/文件夹复制到剪贴板,以允许通过 Windows 资源管理器(通过 MTP)手动粘贴到 Android
- python-3.x - 如何滚动标签中的内容?
- reactjs - 为什么我的 SASS 风格只适用于部分?
- javascript - 关于摇树/副作用的问题
- influxdb - influxDB中同一字段的不同数据类型