Sql 与在MS Access中将子查询与联接相结合有关的问题

Sql 与在MS Access中将子查询与联接相结合有关的问题,sql,database,ms-access,Sql,Database,Ms Access,可能重复: 我在MS Access数据库文件中有一个数据库文件 我有以下疑问: Select RGN.rgn_regionId,RGN.rgn_titleGuj AS Center, (Select COUNT(*) from (select Distinct PRS.prs_personId From tb_personDepartment PD,tb_person PRS Where PD.pd_designationId = 1 And PD.pd_personId = PRS.prs

可能重复:

我在MS Access数据库文件中有一个数据库文件

我有以下疑问:

Select RGN.rgn_regionId,RGN.rgn_titleGuj AS Center,

(Select COUNT(*) from (select Distinct PRS.prs_personId From tb_personDepartment PD,tb_person PRS Where PD.pd_designationId = 1 And PD.pd_personId = PRS.prs_personId And PRS.prs_centerId = RGN.rgn_regionId And PRS.prs_attandanceStatus = 'Y')) As SKAt

From tb_person PRS,tb_personDepartment PD,tb_region RGN
Where PD.pd_personId = PRS.prs_personId
And PRS.prs_centerId = RGN.rgn_regionId
Group By RGN.rgn_regionId,RGN.rgn_titleGuj
表结构如下所示

select * from tb_person where prs_personId in (3)
--prs_personId   prs_uniqId prs_centerId prs_fName  prs_mName    prs_lName  prs_age   prs_addres   prs_areaId
-- 3                    1       1               abc     abc             abc         12      andn            2
--(1 row(s) affected)

    select * from tb_personDepartment where pd_personId in (3)

    --pd_personId          pd_mahotsavId pd_departmentId pd_designationId pd_MainSK
    ---------------------- ------------- --------------- ---------------- -----------
    --3                    1             41              1                1
    --3                    1             44              2                0
    --3                    1             104             1                1

--(3 row(s) affected)

select * from tb_personMahotsavDetail where pm_personId in (3)

--pm_personId   pm_mahotsavId pm_personStatus pm_sevaDaysH   pm_accommodationRequired pm_utaraPlace  
--------------- ------------- --------------- -------------- ------------------------ -------------  
--3                    1             SS              8           0                        NULL       

--(1 row(s) affected)

select * from tb_person where prs_personId in (3)
-- Single Record

select * from tb_personDepartment where pd_personId in (3)
-- Multiple Record With Same Person Id

select * from tb_personMahotsavDetail where pm_personId in (3)
-- Single Record
这种情况会发生
列名不存在时
或者它可能拼写错误时

我在SQL Server中尝试了相同的查询。。它工作正常。。但在MSAccesscan中不起作用如果您显示表结构,我会在我的末尾尝试。您可以下载此应用程序来生成脚本。我用表结构编辑了我的帖子:我从你的查询中删除了
选择计数(*),然后它运行了。你是说这些表在SQL Server中,在MS Access中链接?这将对这个问题产生巨大的影响!在MS Access中,您不能在内部查询中使用与在外部查询中相同的别名,您在这两个查询中都将tb_persons别名为PRS,等等。您发布的表不包括
PRS_AttendanceStatus
,因此,当字段/列名与您的表不匹配时,我无法看到此查询在SQL Server中如何工作。