Выберите базу данных MAX ID Access - PullRequest
0 голосов
/ 21 июня 2020

Я разрабатываю Систему управления школой в vb. net с доступом db. при приеме сборов квитанция должна быть уникальной, но начинаться с 1 в каждом новом сеансе. Я использую запрос MAX ID, например

 str = "SELECT MAX([receipt_id]) FROM [Transaction] WHERE [session]=" & Home.Label2.Text
    cmd = New OleDb.OleDbCommand(str, cn)
    da.SelectCommand = cmd
    da.Fill(ds, "Transaction")
    Dim lastid As Integer
    If cmd.ExecuteScalar() Is DBNull.Value Then
        lastid = 0 + 1
    Else
        lastid = Convert.ToInt32(cmd.ExecuteScalar()) + 1
    End If

    receipt_no.Text = lastid

. Но проблема в том, что он возвращает последний идентификатор вместо max из этого сеанса. Пожалуйста, не могли бы вы мне помочь.

Вот объяснение, что мой запрос:

SELECT MAX([receipt_id]) FROM [Transaction] WHERE [session]=2018-2019

На выходе будет 0, затем 1, затем 2, но когда я стреляю

SELECT MAX([receipt_id]) FROM [Transaction] WHERE [session]=2019-2020

Результат равен 0, затем 2 Он возвращает max из транзакции таблицы, не учитывая предложение where.

...