簡體   English   中英

查詢構建以查找所有一系列記錄都具有值的記錄

[英]Query build to find records where all of a series of records have a value

讓我解釋一下我正在嘗試做的事情,因為我什至不知道用來提問的詞匯。 我有一個 Access 2016 數據庫,用於記錄員工 QA 數據。 當員工錯過 QA 時,我們會分配一個工作幫助來解釋該流程,他們可以選擇發回一份工作表,顯示他們了解了錯過的內容。 如果他們在 3 個月內完成所有這些工作,他們將獲得 QA 分數的積分。 所以我有一系列記錄,所有這些記錄都有我們分配工作的日期(RA1),並且可能有一個工作返回日期(RC1)。 在此處輸入圖像描述

在下圖中,“lavalleer”獲得了榮譽,因為她的兩張床單都被退回了。 “maduncn”沒有獲得榮譽,因為他沒有做一個。 我想創建一個查詢,只返回像“lavalleer”這樣的人。 我嘗試點擊谷歌並在此處搜索和 access.programmers.co.uk 但我只是提出使用 Not null 語句的說明。 這對我不起作用,因為如果我在“maduncn”上執行 IS Not Null,我會得到 4 條記錄,但它會排除 null。

我需要做的是構建一個查詢,我可以在其中查看在所有 RC1 字段中都有日期的員工。 如果他們的任何 RC1 字段為空白,我不希望他們返回。

考慮:

SELECT * FROM tablename WHERE NOT UserLogin IN (SELECT UserLogin FROM tablename WHERE RCI IS NULL);

您可以將not exists的子句與相關的子查詢一起使用,例如

select t.* from YourTable t where not exists 
(select 1 from YourTable u where t.userlogin = u.userlogin and u.rc1 is null)

在這里, select 1純粹用於優化 - 我們不關心查詢返回什么,只關心它有記錄(或沒有記錄)。


或者,您可以使用left join來排除那些有 null rc1記錄的用戶,例如:

select t.* from YourTable t left join
(select u.userlogin from YourTable u where u.rc1 is null) v on t.userlogin = v.userlogin
where v.userlogin is null

在上述所有內容中,將所有出現的YourTable更改為您的表的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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