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中如何工作。