我试图通过以更易读的方式安排生物识别读卡器的考勤数据来帮助人力资源。读者的输出汇总在Access数据库中。输出看起来像图像:
每位员工每天可以有1个IN和1个退出(f_ReaderName
列)。其中一些卡多次刷卡,并记录多个IN或EXIT。我如何查询数据库或按编程方式安排每个Data
列值,每个f_CardNO
和2列的单个记录:Ora
的最大值f_ReaderName
} = 1-1 [In]和Ora
的MIN f_ReaderName
= 1-1 [退出]?
我能以任何方式实现这一目标吗?提示将不仅有用。非常感谢!
LE:管理来获取此查询,但无法解析,我在语法中做错了什么:
SELECT
CR.f_CardNO,
Format(CR.f_ReadDate, 'Short Date') AS Data,
CR.f_ConsumerName,
CR.f_GroupName,
CR.f_ReaderName,
(
SELECT
ISNULL(MAX(FORMAT(CR.f_ReadDate, 'Long Time')), 0) AS Expr1
FROM
v_d_CardRecord CR1
WHERE
(
CR.f_ReadDate = CR1.f_ReadDate
AND CR.CardNO = CR1.CardNO
AND CR1.F_ReaderName = # 1 - 1[In] #
)
)
As OraIntrare,
(
SELECT
ISNULL(MIN(FORMAT(CR.f_ReadDate, 'Long Time')), 0) AS Expr1
FROM
v_d_CardRecord CR1
WHERE
(
CR.f_ReadDate = CR1.f_ReadDate
AND CR.CardNO = CR1.CardNO
AND CR1.F_ReaderName = # 1 - 1[Exit] #
)
)
As OraIesire
FROM
v_d_CardRecord CR
WHERE
(
CR.f_ReadDate > # 12 / 1 / 2016 #
)
ORDER BY
CR.f_ConsumerName,
Format(CR.f_ReadDate, 'Short Date')
GROUP BY
CR.f_CardNO,
Data,
CR.f_ConsumerName,
CR.f_GroupName,
CR.f_ReaderName,
OraIntrare,
OraIesire
答案 0 :(得分:0)
这是我在Distinct Database中的Visual Basic中的代码。如果我错了,请纠正我。
你可以把它放在表单加载上。我认为这只适用于组合框。 (不确定),但它在我的组合框中工作,它与我的数据库不同。
Dim da As New OleDbDataAdapter(“select distinct [FULL NAME] from EmpInfo“,con1)
Dim table As New DataTable() da.Fill(table) ComboBox1.DataSource = New BindingSource(table, Nothing) ComboBox1.DisplayMember = "FULL NAME"