繁体   English   中英

根据最近日期选择行,包括唯一信息

Select rows based on most recent date including unique information

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我找到了许多选择最近日期的解决方案,但是,这样做时我无法成功包含所有列,因为我拥有希望包含的唯一数据。

这是我的原始查询:

select p.scode, u.scode, sq.dsqft0, sq.dtdate
from unit u
join property p on p.hmy = u.hproperty
join sqft sq on sq.hpointer = u.hmy
where p.hmy = 19

返回:

p.scode      u.scode      dsqft0           dtdate
-------------------------------------------------------------------
01200100     100          23879            1/1/1980 12:00:00 AM
01200100     100          19000            10/30/2017 12:00:00 AM
01200100     100          23879            11/1/2018 12:00:00 AM
01200100     200          33854            1/1/1980 12:00:00 AM
01200100     400          7056             1/1/1980 12:00:00 AM
01200100     400          12056            6/1/2015 12:00:00 AM

我只想接收每个p.scode和u.scode的最新条目,但是,我不想按sq.dsqft0分组-我只想返回该列中最新的内容p.scode / u.scode行。

如果我从查询中删除sq.dsqft0列,则可以缩小到所需的行,但是我需要sq.dsqft0列中的信息。 这是几乎可行的查询:

select p.scode,u.scode,max(sq.dtdate)as currentdate
from unit u
join property p on p.hmy=u.hproperty
join sqft sq on sq.hpointer=u.hmy
where p.hmy=19
group by p.scode,u.scode

返回:

p.scode      u.scode         currentdate
01200100     100             11/1/2018 12:00:00 AM
01200100     200             1/1/1980 12:00:00 AM
01200100     400             6/1/2015 12:00:00 AM

这些是正确的行,但是,如果我包含sq.dsqft0,则必须将其包括在group by语句中,并且它返回sq.dsqft0列不匹配的其他行。 如果我输入以下内容:

select p.scode,u.scode,sq.dsqft0,max(sq.dtdate) as currentdate
from unit u
join property p on p.hmy=u.hproperty
join sqft sq on sq.hpointer=u.hmy
where p.hmy=19
group by p.scode,u.scode,sq.dsqft0

它返回以下内容:

p.scode      u.scode      dsqft0           dtdate
01200100     100          19000            10/30/2017 12:00:00 AM
01200100     100          23879            11/1/2018 12:00:00 AM
01200100     200          33854            1/1/1980 12:00:00 AM
01200100     400          7056             1/1/1980 12:00:00 AM
01200100     400          12056            6/1/2015 12:00:00 AM
1 个回复

我的建议是使用子查询查找最新数据,然后与原始表结合以获取“ dsqft0”:

select * from 
 ( select  p.scode,u.scode as uscode, current_date, dsqft0 
   from unit u
   join property p on p.hmy=u.hproperty
   join sqft sq on sq.hpointer=u.hmy
   where p.hmy=19 ) a
   join 
 (select p.scode,u.scode as uscode ,max(sq.dtdate)as currentdate
  from unit u
  join property p on p.hmy=u.hproperty
  join sqft sq on sq.hpointer=u.hmy
  where p.hmy=19 
  group by p.scode,u.scode ) sub 
  on a.scode = sub.scode
  and a.uscode = sub.uscode
  and a.current_date  = sub_current_date
1 根据日期选择最近的5行

我有一段时间没有触及PHP,并尝试在我的数据库中选择5个最新的条目并将它们打印到屏幕上。 我不推荐使用mysql命令,而是使用PDO-> mysql。 我的查询是这样的: 我假设我必须将值放入数组并创建一个循环并输出结果。 我用上面的代码填补了空白。 更新 ...

2 SQL-根据日期选择最新的员工信息

我正在尝试执行一个简单的代码,如下所示。 当我运行此代码时,将产生多行数据。 如果可能,我只想使用最新的“ Assignment_Start_Date”检索数据? 我希望这是有道理的。 我已经完成了研究,但似乎无法绕开它,因此为什么在这里提出要求。 非常感谢。 ...

3 仅选择唯一 ID 的最近日期

这应该是一个要解决的简单问题,但由于某种原因,我无法理解如何有效地做到这一点...... 假设我有一个看起来像这样的表 (postgres): ID 日期 价值 1 2021-04-01 ...

4 根据给定日期选择最新值

在Access中,我使用此虚拟表(table1),并希望使用下面显示的逻辑更新table2的字段。 例如,对于ID = 1,表2中field2的所有值应为10,而Date为<1/1/2015,并且该日期之后的所有值均应为8,依此类推。 我首先尝试了一条select语句,以查看我离 ...

5 选择基于最近日期的值

我有一个每隔几个月更新一次的货币表。 我试图仅根据日期提取最新数字。 但是,我放在哪个过滤器或数据类型转换器似乎并不重要。 我无法拿出我独特的清单。 我不知道如何复制表格格式。 只有以下三列: 该表采用以下日期格式设计: 任何帮助都会非常感激。 ...

6 根据日期选择最新记录

我正在尝试创建一个选择查询,该查询根据日期从表中返回最新记录。 基本上,哪一行的[Date]字段都最接近当前日期。 样本数据: 我只想返回这些值 谢谢! ...

7 选择最近的行

因此,我的问题就在这种情况下出现:我有一个用于管理课外课程学生申请的系统。 这些应用程序存储在具有以下结构的表中: StudentId:学生的ID [主键] CourseId:课程的ID [主键] StatusVerificationDate:验证应用程序状态的日期[ ...

8 选择最近日期

我正在尝试以仅向我提供最近日期的记录的方式来查询它,但是却很少引起混淆,因为我已经从3个表中提取数据了,不确定在这里如何使用MAX(date) 。 ...

10 MS Access为每个唯一ID选择最新日期

我正在使用MS Access数据库。 我有下表: 我需要查找最新购买产品的记录(适用于所有产品) 即所需的输出应为: 我对数据库比较陌生。 请帮我查询。 谢谢。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM