簡體   English   中英

t-sql復雜查詢僅以“ R”獲取最大狀態

[英]t-sql complex query to get only maximum status with 'R'

我想獲取僅具有“ R”的狀態類型的最大索賠狀態版本,如果還有其他具有相同索賠ID的狀態,我想過濾它們。

下面的查詢沒有給我所需的結果。

select p.prov_clm_id,p.prov_clm_stat_type,max(p.clm_stat_version)
from provider_clm_stat p 
WHERE p.provider_clm_stat_type='R' 
GROUP BY p.prov_clm_id,p.provider_claim_status_type


194 R   1
231 R   1
469 R   1
649 R   1

如果還有其他聲明狀態,我不想在結果中顯示它。

select * from provider_clm_stat where prov_clm_id=194


194 5   B
194 2   K
194 3   G
194 4   Q
194 7   H
194 8   P
194 1   R
194 6   X


Required results:

740 R   1

如果您希望索賠狀態僅具有'R'而沒有其他狀態:

select p.prov_clm_id, p.prov_clm_stat_type, max(p.clm_stat_version)
from provider_clm_stat p 
GROUP BY p.prov_clm_id, p.provider_claim_status_type
having max(p.provider_clm_stat_type) = 'R' and
       min(p.provider_clm_stat_type) = 'R';

此處的過濾在聚合之后having子句中。 如果min()max()值均為'R' ,則所有值均為'R'NULL 如果可能使用NULL並希望將其過濾掉,請使用此子句:

having max(p.provider_clm_stat_type) = 'R' and
       min(p.provider_clm_stat_type) = 'R' and
       count(*) = count(p.provider_clm_stat_type)

我對要查找的數據有些困惑,但是也許是這樣的:

select TOP 1 p.prov_clm_id,p.prov_clm_stat_type, p.clm_stat_version
from provider_clm_stat p 
WHERE p.provider_clm_stat_type='R' 
ORDER BY p.clm_stat_version desc

據我所知,分組依據對您沒有任何作用,因為您在分組中具有ID。

編輯:按字段更改順序,並刪除最大值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM