的某些相同的值在SQL的不止一個,我想所有的記錄,但在列值RM
發生MCCU
twice..but我在的情況下,可以不顯着,因爲這兩個值的雜項的值都不一樣..
我怎麼能做出是否MCCU
有一個以上的RM
,然後只選擇那些在POSI
列和處於較高位置的一個專欄,將他們的兩個數值加起來組合在一起。希望想法解決它。非常感謝你!
這是我的SQL語句
select * from Oclaimc Where cono='NP' and CLNO='7150000032'
的某些相同的值在SQL的不止一個,我想所有的記錄,但在列值RM
發生MCCU
twice..but我在的情況下,可以不顯着,因爲這兩個值的雜項的值都不一樣..
我怎麼能做出是否MCCU
有一個以上的RM
,然後只選擇那些在POSI
列和處於較高位置的一個專欄,將他們的兩個數值加起來組合在一起。希望想法解決它。非常感謝你!
這是我的SQL語句
select * from Oclaimc Where cono='NP' and CLNO='7150000032'
沒有列名misc
在你的形象。我假設你需要總計gamntMisc
和gttlMisc
。
所以試試這個。需要時添加其他列。
select max(CONO) as CONO,max(CLNO) as CLNO,max(posi) as posi,MCCU,
sum(gamntMisc) as totalgamntMisc,sum(gttlMisc) as totalgttlMisc from Oclaimc
where cono='NP' and CLNO='7150000032'
group by mccu
注意:如果刪除where子句,查詢將失敗。如果你需要這個結果對於cono
和clno
每個組合則by子句改變組 group by cono,clno,mccu
嗨..非常感謝你! 但我不是很明白,你能解釋我,我欣賞它:) 1)cono和clno的最大功能意味着什麼?因爲當我谷歌最大功能,這意味着返回所選列的最大值。 2)爲什麼羣由mccu是必要的?因爲當我刪除它時,查詢無法運行。 真正讚賞。 – Jan
所以這個查詢是由'mccu'分組的,因爲你有3個不同的值,這就是你在輸出中需要的值。按函數分組最重要的規則是,select語句中的列應該是按照子句劃分的,否則它們應該使用任何聚合函數。現在即使'conc'和'clno'值對於每一組'mccu'都是相同的,SQL將不知道它們是否是。因此,使用Max可以讓我們按規則繞過組並獲得所需的結果。 – Utsav
你可以進一步谷歌'group by'並做一些案例研究來更好地理解它。 – Utsav
這可能會幫助:
select *
from oclaimc
where cono = 'NP'
and clno = '7150000032'
and mccu <> 'RM'
union
select *
from (select *
from oclaimc
where cono = 'NP'
and clno = '7150000032'
and mccu = 'RM'
order by posi)
where rownum = 1
您可以編輯的問題,並添加想要的結果呢? (並標記使用的dbms ...) – jarlh
@jarlh - 您可以通過附加圖像進行假設。 – pedram
@curiousguy,我不知道是什麼工具... – jarlh