如何更新具有两个不同ID的特定行
本文关键字:ID 两个 何更新 更新 | 更新日期: 2023-09-27 17:58:33
我有一个表,我想在其中单独更新一行:
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())
我只能在一天内更新特定的行,但由于我需要能够解释加班,所以不能。
如何使用C#更新特定行以更新特定事务的END列?
基本上,我的C#程序的布局是用户必须输入他的EmpID,然后按"START"或"END"。但"结束"部分很棘手。我最终更新了所有行并丢失了以前的数据。
如何使用每个特定员工的最新交易ID更新特定行?对不起,如果我弄糊涂了。
我读到你的问题是这样的:
我想更新特定员工的最后一个条目
只要每个条目的事务id都会增加,你就可以这样做:
UPDATE EmpLog
SET ShiftEnd = '09:00:00'
WHERE EmpID = 1 AND [Transaction ID] =
(SELECT MAX([Transaction ID]) FROM EmpLog WHERE EmpID = 1)
阅读这个类似的问题:
是否可以使用sql在更新语句中使用MAX?
这主要是针对MS SQL Server的,但我认为您可以很容易地将其转换为mysql。在mysql中可能有更好的方法。
此解决方案的缺点:您必须在更新中进行额外的选择,这会更慢,但对于本例,如果认为应该可以的话。