第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如果 select 語(yǔ)句包含 DATE 類型的列,則聚合 sql 查詢不起作用

如果 select 語(yǔ)句包含 DATE 類型的列,則聚合 sql 查詢不起作用

開(kāi)滿天機(jī) 2022-07-20 12:20:57
我想在版本列中選擇一條具有最新值的記錄。但是,如果我包含retrn_period日期類型的列,我的查詢將返回多條記錄。SELECT rdo_code, batch_no, reference_no, dln, retrn_seq_num, ftype_code, tin,     branch_code, tax_type, retrn_period, Max(version)FROM   rfp_returns_ref WHERE  tin = '000079108' AND    ftype_code = '1702EX' AND    Upper(status) = Upper('POSTED') group by rdo_code, batch_no,reference_no, dln,     retrn_seq_num, ftype_code, tin, branch_code, tax_type, retrn_period;
查看完整描述

3 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

如果我包含 retrn_period 列...我的查詢將返回多條記錄。


通過(guò)包含該retrn_period列,您正在更改查詢的非聚合投影,因此現(xiàn)在您可以獲得結(jié)果集中每個(gè)不同日期的最大版本。


您想顯示最新版本的日期嗎?假設(shè)您的retrn_period增加與version此一起工作:


SELECT rdo_code, batch_no, reference_no, dln, retrn_seq_num, ftype_code, tin, 

    branch_code, tax_type

       , max(retrn_period) as retrn_period

       , max(version) as version

FROM   rfp_returns_ref 

WHERE  tin = '000079108' 

AND    ftype_code = '1702EX' 

AND    Upper(status) = Upper('POSTED') 

group by rdo_code, batch_no,reference_no, dln, 

    retrn_seq_num, ftype_code, tin, branch_code, tax_type;

一個(gè)更通用的解決方案適用于無(wú)法聚合的東西,比如說(shuō)name,使用帶有分析函數(shù)的子查詢......


SELECT sq.rdo_code, sq.batch_no, sq.reference_no, sq.dln, sq.retrn_seq_num, sq.ftype_code, sq.tin, 

    sq.branch_code, sq.tax_type

       , sq.retrn_period

       , sq.name

       , sq.version

from (    

    SELECT rdo_code, batch_no, reference_no, dln, retrn_seq_num, ftype_code, tin, 

            branch_code, tax_type

               , retrn_period

               , version

               , name

               , rank() over (partition by rdo_code, batch_no,reference_no, dln, 

            retrn_seq_num, ftype_code, tin, branch_code, tax_type

                    order by version desc ) as rn

        FROM   rfp_returns_ref 

        WHERE  tin = '000079108' 

        AND    ftype_code = '1702EX' 

        AND    Upper(status) = Upper('POSTED') 

        ) sq

where sq.rn = 1 ;

如果您使用的是 Oracle 12c,則可以使用 fetch 限制語(yǔ)法,這要簡(jiǎn)單得多:


SELECT rdo_code, batch_no, reference_no, dln, retrn_seq_num, ftype_code, tin, 

    branch_code, tax_type

       , retrn_period

       , version

FROM   rfp_returns_ref 

WHERE  tin = '000079108' 

AND    ftype_code = '1702EX' 

AND   order by version desc 

fetch first 1 row only;


查看完整回答
反對(duì) 回復(fù) 2022-07-20
?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

如果你想選擇一個(gè)單一的記錄——版本號(hào)最高——那么我認(rèn)為你根本不需要對(duì)任何東西進(jìn)行分組。


按版本號(hào)排序行并獲取前 1 應(yīng)該這樣做:


SELECT

    rdo_code,

    batch_no,

    reference_no,

    dln,

    retrn_seq_num,

    ftype_code,

    tin,

    branch_code,

    tax_type

    retrn_period,

    version

FROM rfp_returns_ref 

WHERE

    tin = '000079108' 

    AND ftype_code = '1702EX' 

    AND UPPER(status) = UPPER('POSTED')

ORDER BY version DESC

FETCH FIRST 1 ROWS ONLY;

此查詢假定您正在運(yùn)行 Oracle 12c。


查看完整回答
反對(duì) 回復(fù) 2022-07-20
?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

You can also use rownum=1


SELECT

    rdo_code,

    batch_no,

    reference_no,

    dln,

    retrn_seq_num,

    ftype_code,

    tin,

    branch_code,

    tax_type

    retrn_period,

    version

FROM rfp_returns_ref 

WHERE

    tin = '000079108' 

    AND ftype_code = '1702EX' 

    AND UPPER(status) = UPPER('POSTED')

AND rownum=1

ORDER BY version DESC;

---------------------------------------------------------------------------------------

or subquery like


SELECT

    rdo_code,

    batch_no,

    reference_no,

    dln,

    retrn_seq_num,

    ftype_code,

    tin,

    branch_code,

    tax_type

    retrn_period,

    version

FROM rfp_returns_ref a

WHERE

    tin = '000079108' 

    AND ftype_code = '1702EX' 

    AND UPPER(status) = UPPER('POSTED')

AND a.version = (SELECT Max(b.version) 

                   FROM rfp_returns_ref b 

                  WHERE b.tin = a.tin

                    AND b.ftype_code = a.ftype_code

                    AND b.UPPER(status) = UPPER(a.status));


查看完整回答
反對(duì) 回復(fù) 2022-07-20
  • 3 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)