我正在尝试在Confirm Ondemand中构建一个小部件,该小部件显示在特定日期之后已经检查过并且未以堆叠列格式检查的所有资产。因此,例如,我将有一个位置分为两个的列,将检查一种颜色,并且不检查另一种颜色。这是我的SQL语句:
SELECT
feature.site_code,
feature.plot_number,
cs.site_name,
ward.ward_name,
CASE WHEN feature.survey_date >= to_date('02/10/2017','DD/MM/YYYY') THEN 'Sprayed'
ELSE 'Not Sprayed' END as spray_staus,
feature.survey_date
FROM
feature,
ward,
central_site cs
WHERE
feature.plot_number BETWEEN 400000 AND 400001 AND
feature.site_code = cs.site_code AND
ward.ward_code = feature.ward_code AND
feature.feature_deadflag ='N'
问题是,当我只想要最新的资产时,我会从每个资产中获得每次检查。
我需要做什么???
答案 0 :(得分:0)
是的,你的问题缺乏很多信息。
您应该使用ROW_NUMBER()
,但很难说明在哪里或如何。它应该是这样的(将其更改为您想要最新记录的表):
FROM
(SELECT s.*, ROW_NUMBER() OVER(PARTITION BY s.YourGroup ORDER BY s.YourDate
FROM feature s) feature,
ward,
central_site cs
....
AND feature.rnk = 1
我使用feature
表作为日期,但同样,这只是猜测。
此外,这对大多数RDBMS都有效,但不是全部,所以它真的取决于它。