2016-07-25 1 views
0

У меня есть таблица, где я хочу обновить строки по отдельности:Как обновить определенную строку с двумя разными идентификаторами?

Transaction ID EmpID START END  LOGDATE 
1     1  8:32:32 NULL 7/25/2016 
2     2  9:02:10 NULL 7/25/2016 
3     3  9:00:56 NULL 7/25/2016 
4     3  9:42:00 NULL 7/26/2016 
5     2  10:58:00 NULL 7/26/2016 
6     1  9:23:00 NULL 7/26/2016 

Если я использую это:

UPDATE EmpLog SET ShiftEnd = '09:00:00' WHERE EmpID = 1 and CONVERT(date,  EmpLog.LogDate) = CONVERT(date, GETDATE()) 

Я могу только обновить конкретную строку в течение дня, но так как мне нужно быть в состоянии учитывать сверхурочные, этого не может быть.

Как обновить определенную строку, чтобы обновить столбец END для конкретной транзакции с помощью C#?

В принципе, моя программа на C# состоит в том, что пользователь должен ввести свой EmpID и нажать «START» или «END». но часть «END» сложна. Я закончил обновление всех строк и потерял предыдущие данные.

Как обновить определенную строку с последним идентификатором транзакции для каждого конкретного сотрудника? Извините Если я запутался.

+0

Доступ для гостей с ограниченным доступом? – Steve

+0

Ну, на данный момент нет. но я хочу расширить его. Сейчас я просто пытаюсь создать рабочий образец, хотя и борюсь. – user3442765

ответ

2

Я прочитал ваш вопрос так:

Я хочу, чтобы обновить последнюю запись для конкретного сотрудника

Пока идентификатор транзакции будет увеличиваться для каждой записи, вы могли бы сделать что-то как это:

UPDATE EmpLog 
    SET ShiftEnd = '09:00:00' 
    WHERE EmpID = 1 AND [Transaction ID] = 
(SELECT MAX([Transaction ID]) FROM EmpLog WHERE EmpID = 1) 

Прочитайте этот вопрос: похож

Is it possible to use MAX in update statement using sql?

Это для MS SQL Server в основном, но я думаю, вы можете легко перевести его в mysql. В mysql может быть еще лучший способ.

Даунсайд с этим решением: Вы должны сделать дополнительный выбор в своем обновлении, которое будет медленнее, но для этого примера, если вы думаете, что это должно делать хорошо.

+0

Большое вам спасибо! Я даже не знал, что вы можете это структурировать. Спасибо, действительно! – user3442765

Смежные вопросы