&引用;“无法绑定多部分标识符”;在具有SQL表达式/子查询的Crystal报表中

&引用;“无法绑定多部分标识符”;在具有SQL表达式/子查询的Crystal报表中,sql,sql-server,crystal-reports,Sql,Sql Server,Crystal Reports,我正在使用Crystal Reports,它使您能够创建称为SQL表达式的东西。它们基本上是子查询,但受到限制,因此每个SQL表达式只能返回一个标量值。有关更多信息,请访问: 参考文章非常明确地指出: If you are using a SQL Expression as a subquery and wish to link it to the detail row of your main report, do not include the table you wish to link

我正在使用Crystal Reports,它使您能够创建称为SQL表达式的东西。它们基本上是子查询,但受到限制,因此每个SQL表达式只能返回一个标量值。有关更多信息,请访问:

参考文章非常明确地指出:

If you are using a SQL Expression as a subquery and wish to link it to the 
detail row of your main report, do not include the table you wish to link to 
in the FROM clause of the subquery. For example:

(
SELECT  MAX("FLOWSHEET"."VALUE")
FROM    FLOWSHEET
WHERE   "FLOWSHEET"."ID" in ('11')
AND "FLOWSHEET"."IP_ID" = "HOSPITAL_VISIT"."IP_ID"
)

The above query links to the HOSPITAL_VISIT table in the main report by 
linking to the IP_ID field. To accomplish this, HOSPITAL_VISIT is omitted 
from the FROM clause in the query.
我在报告中提出了一个主要问题,即:

SELECT
HIFIS_HousePlacements.MovedInDate, 
vw_ClientBasics.LastName, 
vw_ClientBasics.FirstName,
HIFIS_Clients_HousePlacements.ClientID
FROM   
HIFIS_Clients_HousePlacements 
INNER JOIN HIFIS_HousePlacements ON HIFIS_Clients_HousePlacements.HousePlacementID=HIFIS_HousePlacements.HousePlacementID
INNER JOIN vw_ClientBasics ON HIFIS_Clients_HousePlacements.ClientID=vw_ClientBasics.ClientID
现在我想添加一个SQL表达式

(
SELECT TOP 1 AssessmentAcuityType
FROM vw_IntakeAssessmentAcuityScores
WHERE vw_IntakeAssessmentAcuityScores.ClientID=HIFIS_Clients_HousePlacements.ClientID
AND vw_IntakeAssessmentAcuityScores.AssessmentTool = 'SPDAT'
AND vw_IntakeAssessmentAcuityScores.AssessmentToolType NOT LIKE '%VI%'
AND vw_IntakeAssessmentAcuityScores.IntakeDate BETWEEN DATEADD(month,-6,HIFIS_HousePlacements.MovedInDate) AND HIFIS_HousePlacements.MovedInDate
ORDER BY IntakeID DESC
)
当我这样做时,我得到了多部分标识符HIFIS_HousePlacements.MovedInDate不能绑定的错误


因此,尽管我知道我没有在子查询中定义HIFIS_HousePlacements,但SQL表达式字段的规则表明我不应该这样做。有谁能帮助我了解如何修复此错误?

我已经解决了部分问题

部分问题取决于方程边的顺序

所以我确定这会导致一个错误:

(
SELECT TOP 1 AssessmentAcuityType
FROM vw_IntakeAssessmentAcuityScores
WHERE vw_IntakeAssessmentAcuityScores.ClientID=HIFIS_Clients_HousePlacements.ClientID
)
但事实并非如此

(
SELECT TOP 1 AssessmentAcuityType
FROM vw_IntakeAssessmentAcuityScores
WHERE HIFIS_Clients_HousePlacements.ClientID=vw_IntakeAssessmentAcuityScores.ClientID
)

乍一看,这个查询看起来不错。HIFIS\U房屋安置的结构是什么?它是否真的包含
MovedInDate
?@stickybit是的,它确实包含
MovedInDate
,这是一个日期时间字段,如果这很重要的话。您是否尝试了一个更简单的表达式来检查功能是否存在并按预期工作。比如,注释掉所有的'and'和'Order by'子句?@ShivSidhu我尝试注释掉所有的子句,现在我得到了一个“多部分标识符HIFIS_Clients_HousePlacements.ClientID不能绑定”将表达式添加到主查询时,您到底在做什么?我的猜测是,您没有以正确的方式将其与主查询关联起来。