【问题标题】:Sybase only Last Value仅 Sybase 最后一个值
【发布时间】:2020-05-20 13:23:54
【问题描述】:

我正在为这种情况寻找解决方案:

select pimpfung.idpatientklinik, pimpfung.idpatient_vaccination, pimpfung.datum                                                                                                                              
From ictq.pimpfung
order by   pimpfung.idpatientklinik

输出是:

idpatientklinik;idpatient_vaccination;datum
1;5500;01.02.2001
1;5567;05.09.2003
3;7766;22.08.2005
3;8899;25.09.2006
3;8900;29.09.2006

但我想要这样的输出:

1;5567;05.09.2003
3;8900;29.09.2006

(只有最后一个值按“pimpfung.datum” desc 排序)

怎么做?

谢谢你,对不起我的英语不好;-)

【问题讨论】:

  • datum 列的数据类型是什么?这是(var)chardatedatetime,还有别的吗?

标签: sql sybase


【解决方案1】:

您可以使用相关子查询:

select p.*
from pimpfung p
where p.datum = (select max(p2.datum)
                 from pimpfung p2
                 where p2.idpatientklinik = p.idpatientklinik
                );

使用(idpatientklinik, datum) 上的索引,这通常是最快的方法。

Here 是一个 dbfiddle(它使用 SQL Server,但这都是标准 SQL)。

【讨论】:

  • 所以它似乎不能 100% 工作......不再显示非双倍的值......
  • @Florian 。 . .我修复了列名并添加了一个 dbfiddle。它做你想做的事。
  • 我将它用于另一个查询,发布在此线程中,但它不起作用。你能检查一下吗? ......它以“@Gordon Linoff:我现在使用这个查询:”你是什么意思“带有索引......”?我该怎么办?
猜你喜欢
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
相关资源
最近更新 更多