[英]Distinct values with MAX and MIN from Access Database in VB NET
我試圖通過以更具可讀性的方式安排來自生物識別讀取器的考勤數據來幫助HR。 閱讀器的輸出匯總在Access數據庫中。 輸出如下圖所示:
每個員工每天可以有1 IN和1 EXIT( f_ReaderName
列)。 他們中的一些人多次刷卡,並記錄了多個IN或EXIT。 如何查詢數據庫或以編程方式進行安排,以便每個Data
列值每個f_CardNO
和2列都有f_CardNO
記錄: Ora
的最大值(其中f_ReaderName
= 1-1 [In])和Ora
的最小值(其中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
這是我在不同數據庫的Visual Basic中的代碼。 如果我錯了糾正我。
您可以將此加載到表單上。 我認為這僅適用於組合框。 (不確定),但是它可以在我的組合框中工作,它與我的數據庫不同。
Dim da As New OleDbDataAdapter(“從EmpInfo中選擇不同的[FULL NAME]”,con1)
Dim table As New DataTable() da.Fill(table) ComboBox1.DataSource = New BindingSource(table, Nothing) ComboBox1.DisplayMember = "FULL NAME"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.