0

id の最大値を見つける必要があり、この値によって、他の列の値を読み取る必要があります。ただし、別の列タイプの影響を受けています。私はこのSQLコマンドを使用しました:

"SELECT * FROM Table WHERE id = (SELECT MAX(id) FROM Table WHERE type = 1)"

ID 列は bigint 型で、型は nchar です。type = '1' でも使ってみましたが、同じ問題です。エラーは「id =」セクションの後にあります

返信ありがとう

編集:

SqlCeCommand com = new SqlCeCommand();
if (LocalType == '1') { com = new SqlCeCommand("SELECT req_id FROM Requisition WHERE id = (SELECT MAX(id) FROM Requisition WHERE type = 1)", con); }
else if (LocalType == '2') { com = new SqlCeCommand("SELECT req_id FROM Requisition WHERE id = (SELECT MAX(b.id) FROM Requisition AS b WHERE b.type <> 1)", con); }

using (com)
{
   SqlCeDataReader reader = com.ExecuteReader();
}
4

3 に答える 3

2

これを行う最も簡単な方法は、 を使用することtopです。これが実際のコードである場合、「テーブル」という単語は予約語であるため、「エスケープ」する必要があります。

select top 1 t.*
from [table] t
where type = '1'
order by id desc
于 2013-06-19T20:49:51.163 に答える
1

テーブルに名前を付けてみてください:

SELECT * 
FROM Table AS a 
WHERE id = (SELECT MAX(b.id) FROM Table AS b WHERE b.type = 1)
于 2013-06-19T20:56:22.150 に答える
0

Google でしばらくすると、バージョン 3.5 の SQLCE が SELECT TOP 式をサポートしていることがわかりましたが、書式設定に違いがあります。かっこで書く必要があります

SELECT TOP(1) * FROM MyTable
于 2013-06-20T08:57:19.207 に答える