繁体   English   中英

ms access 2010中嵌套SQL语句中缺少字段

[英]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));

编辑:

似乎很可能:

  • 您在ClientstblClientAddress之间存在多对一(或一对多)关系,并且“多”端有两条记录。 如果您获得重复记录,可以添加DISTINCTGROUP 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM