簡體   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