2013-04-16 20 views
1

我有一個DataTable,其中我有LCNo (string),AmmendmentNo (string)。我想找回這對於相應的LCNo使用MAX()函數進行SQL查詢的條件和顯示數據

例如具有最高AmmendmentNo行:

LCNO(123123123123) AmmendmentNo(0,1,2,3)

我想123和AmmendmentNo:具有LCNO的行3

select * from LCTable where LCNo= '12147001' AND MAX(AmendmentNo); 
+2

注意,因爲你存儲號碼爲字符串,AmendmentNo的最大值將是詞法最大值,而不是數字值。例如:{'1','2','9','542'}的最大值將是'9'。 –

+0

nomendmend沒有最大值將是直到10或更多,直到20 – Sam

回答

2

使用GROUP BY子句。這會給你所有LCNo以及其最高AmendmentNo

SELECT LCNo, MAX(AmendmentNo) AmendmentNo 
FROM LCTable 
GROUP BY LCNo 

但是如果你想要特定的LCNo,你可以簡單地在下面使用。請記住,使用下面的查詢只能得到一個LCNo

SELECT LCNo, MAX(AmendmentNo) AmendmentNo 
FROM LCTable 
WHERE LCNo = '12147001' 
3

爲此,使用limittop或類似的東西:

select * 
from LCTable 
where LCNo= '12147001' 
order by AmendmentNo desc 
limit 1 

在SQL Server中,這將使用top

select top 1 * 
from LCTable 
where LCNo= '12147001' 
order by AmendmentNo desc 
+0

我試過這個「desc limit 1」,但是當它在管理面板中使用它的工作,但是當我在php代碼中使用它dosent –