[英]missing field in nested SQL statement in ms access 2010
以下MS Access 2010查詢僅輸出FirstName,HomePhone和ClientNumber的值。 它不輸出LastName的任何值。
任何人都可以告訴我如何更改它,以便它也輸出LastName的值?
SELECT
ActiveCustomers.FirstName
, ActiveCustomers.LastName
, tblClientAddress.HomePhone
, ActiveCustomers.ClientNumber
FROM (
SELECT
Clients.ClientNumber
, Clients.FirstName
, Clients.LastName (
SELECT COUNT(ReferralDate) FROM IntakeTable
WHERE Clients.ClientNumber = IntakeTable.ClientNumber
AND Len(ReferralDate & '') > 0
) AS IntakeCount
, (
SELECT COUNT(ExitDate)
FROM ExitTable
WHERE Clients.ClientNumber = ExitTable.ClientNumber
AND Len(ExitDate & '') > 0
) AS ExitCount
FROM Clients
) AS ActiveCustomers
INNER JOIN tblClientAddress
ON ActiveCustomers.ClientNumber = tblClientAddress.ClientNumber
WHERE ActiveCustomers.IntakeCount > [ExitCount]
AND tblClientAddress.CurrentResidence = True;
您似乎在Clients.LastName
之后缺少逗號。 嘗試:
SELECT ActiveCustomers.FirstName, ActiveCustomers.LastName, tblClientAddress.HomePhone, ActiveCustomers.ClientNumber
FROM
(SELECT Clients.ClientNumber,
Clients.FirstName,
Clients.LastName,
(SELECT COUNT(ReferralDate) FROM IntakeTable WHERE Clients.ClientNumber = IntakeTable.ClientNumber AND Len(ReferralDate & '') > 0) AS IntakeCount,
(SELECT COUNT(ExitDate) FROM ExitTable WHERE Clients.ClientNumber = ExitTable.ClientNumber AND Len(ExitDate & '') > 0) AS ExitCount
FROM Clients) AS ActiveCustomers
INNER JOIN tblClientAddress ON ActiveCustomers.ClientNumber = tblClientAddress.ClientNumber
WHERE (((ActiveCustomers.IntakeCount)>[ExitCount]) AND
((tblClientAddress.CurrentResidence)=True));
編輯:
似乎很可能:
Clients
和tblClientAddress
之間存在多對一(或一對多)關系,並且“多”端有兩條記錄。 如果您獲得重復記錄,可以添加DISTINCT
或GROUP BY
, 和/或:
那個(SELECT COUNT(
子查詢以某種方式搞亂了他們的父查詢,需要進行修改,以便他們可以通過Inner Join
進入他們的父查詢的FROM
子句,例如:
(SELECT ClientNumber, COUNT(ReferralDate) as IntakeCount FROM IntakeTable WHERE Len(ReferralDate & '') > 0 GROUP BY ClientNumber) AS qryIntakeCount
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.