[]
嗨伙计,
观察上述ERD,任何人都可以帮助我解决以下问题。
我希望在CI_MR_REM
表格上按照GEO_VAL
在CI_PREM_GEO
表格中获取最新的3条记录。
到目前为止,我已经能够对此部分进行排序,但我需要进一步过滤列表如果所有3条记录在READER_REM_CD
上的CI_MR_REM
字段中具有特定值/ p>
这是我到目前为止开发的SQL。有什么想法吗?
SELECT * FROM
(
SELECT PGEO.GEO_VAL AS GPRN,SPMTRHIS.MTR_CONFIG_ID,MR1.MR_ID,MR1.READ_DTTM,MR1.USE_ON_BILL_SW,MRREM.READER_REM_CD,
ROW_NUMBER() OVER (PARTITION BY PGEO.GEO_VAL ORDER BY MR1.READ_DTTM DESC) AS READ_NUMBER
FROM CI_SP SP,CI_SP_MTR_HIST SPMTRHIS,CI_MR MR1,CI_MR_REM MRREM,CI_PREM_GEO PGEO
WHERE MR1.MR_ID = MRREM.MR_ID
AND SPMTRHIS.MTR_CONFIG_ID = MR1.MTR_CONFIG_ID
AND SP.SP_ID = SPMTRHIS.SP_ID
AND SP.PREM_ID = PGEO.PREM_ID
AND PGEO.GEO_TYPE_CD = 'GPRN'
)
WHERE READ_NUMBER <=3
为了澄清,下面的截图是我目前的结果
我需要对结果进行进一步过滤,以便保留突出显示的0954765,因为它的所有3个最后一个值都是GA,而0198645,0638843,1091524和1160618这样的值不应该像READER_REM_CD列中的值一样混合物
[]
答案 0 :(得分:0)
编写如下代码
WHERE READ_NUMBER between 1 and 3