[英]missing field in nested SQL statement in ms access 2010
The following MS Access 2010 query only outputs values for FirstName, HomePhone, and ClientNumber. 以下MS Access 2010查询仅输出FirstName,HomePhone和ClientNumber的值。 It is not outputting any values for LastName. 它不输出LastName的任何值。
Can anyone show me how to change it so that it outputs values for LastName also? 任何人都可以告诉我如何更改它,以便它也输出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;
You appear to be missing a comma after Clients.LastName
. 您似乎在Clients.LastName
之后缺少逗号。 Try: 尝试:
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));
EDIT: 编辑:
It seems likely that: 似乎很可能:
Clients
and tblClientAddress
, and you have two records on the "many" side. 您在Clients
和tblClientAddress
之间存在多对一(或一对多)关系,并且“多”端有两条记录。 If you are getting duplicate records, you could add a DISTINCT
or a GROUP BY
, 如果您获得重复记录,可以添加DISTINCT
或GROUP BY
, And/Or: 和/或:
That the (SELECT COUNT(
subqueries are somehow messing up their parent query, and need to be modified so that they can go into their parent query's FROM
clause with an Inner Join
, eg: 那个(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.