簡體   English   中英

VB NET中Access數據庫中MAX和MIN的不同值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM