0
我有一個記錄集,其中一些行是重複的。特別是,它們在記錄集的最後三行中被複制。在整個四行中,我期望的正確結果集包括第一行和最後一行。我希望這樣做,因爲對於特定的SARAPPD_TERM_CODE_ENTRY,所需的記錄是SARAPPD_SEQ_NO值最大的記錄。所以,第一行是因爲對於特定的術語,序列號在最後一行是最大的,因爲序列號最大爲六。圖像和查詢如下。基於最大序列號查詢特定字段
select ppd.sarappd_seq_no, ppd.sarappd_term_code_entry, ppd.sarappd_apdc_code,
dap. dap.saradap_term_code_entry,
spri.spriden_id,
t.sgbstdn_astd_code, t.*
from sgbstdn t
left join spriden spri on t.sgbstdn_pidm = spri.spriden_pidm
left join saradap dap on spri.spriden_pidm = dap.saradap_pidm
join sarappd ppd on dap.saradap_pidm = ppd.sarappd_pidm
where t.sgbstdn_astd_code not in ('AS', 'DS', 'WD', 'SU', 'LA')
and t.sgbstdn_stst_code = 'AS'
and spri.spriden_change_ind is null
and spri.spriden_id = '123456789'
and (ppd.sarappd_apdc_code = 25 or ppd.sarappd_apdc_code = 30
or ppd.sarappd_apdc_code =35)
and ppd.sarappd_term_code_entry = dap.saradap_term_code_entry
--where b.sarappd_term_code_entry = ppd.sarappd_term_code_entry)
order by ppd.sarappd_term_code_entry
我相信這是一個簡單的「,其中本=(選擇MAX())類型的查詢,但我一直在努力一些不同的東西,並沒有什麼工作。我沒有變我想要的結果。因此,隨着中說,有這方面的幫助,將不勝感激。在此先感謝。
可以讓你查詢S impler?例如,你可以擺脫額外的表,只是做一個自我查詢和使用SELECT XXX FROM YourTable WHERE APDC_CODE =(SELECT MAX(APDC_CODE)FROM ...)UNION ALL SELECT XXX FROM YourTable WHERE APDC_CODE =(SELECT MIN( APDC_CODE)FROM ...),以便將代碼簡化爲有效的東西。然後將其他表格一次一個添加回去。 – Missy
這是什麼rdbms? SQL Server,MySQL等 – SQLChao
@Missy我會嘗試做更多的事情,看看我是否可能錯過了一些東西。在......之前,我一直在一桌一桌地插上桌子,還「重新安排」桌子,以另一種方式解決問題。但我會看到還有什麼我可以拿出 – user1898629