2015-02-06 40 views
-4

我想從table1獲取(orderno,payby,idno),其中idno是最大值,payby不是'ROUNDING'。如何在mysql中編寫這個sql查詢?

orderno | payby | idno 
01,CASH,1 
01,ROUNDING,2 
03,CASH,1 
03,ROUNDING,2 
03,CASH,3 
11,CASH,1 
11,CASH,2 
11,EFTPOS,3 

結果應該是這樣的:

01,CASH,1 
03,CASH,3 
11,EFTPOS,3 

回答

1

試試這個:

select * from `table1` where payby != 'ROUNDING' and (orderno,idno) in (
select orderno, max(idno) from `table1` where payby != 'ROUNDING' group by orderno) 

內SEL應該給你與他的最大IDNO所有orderno。外部選擇應該給你這個數據的行。

0

結果應該也是11,現金2,對不對?

select orderno,payby,MAX(Idno) as Idno from #yourtable 
where payby != 'ROUNDING' group by orderno,payby 

你會被orderno,payby組並獲得IDNO最大值plusyou不想payby是「四捨五入」,讓你做where payby != 'ROUNDING'