注册 登录
编程论坛 SQL Server论坛

请教SQL语法该如何下?

wube 发布于 2019-09-30 15:54, 2313 次点击
有A,B,C三个表,共有的关联主KEY为PNum,
B表有多个项目属于A表内的一项,A(1)->B(多),
C表有多个纪录属于B表内的一项,B(1)->C(多),C也有可能会没纪录

该如何搜寻在,相同PNum时,C表内累积纪录笔数>0,的A表PNum资料(PNum不重复显示)?


3 回复
#2
wube2019-09-30 16:02
SELECT ROW_NUMBER() OVER (ORDER BY A.KickoffDate DESC) AS RowNo,A.PNum,A.PName,A.KickOffDate,A.PlanDate,A.DepartmentNo,A.CreatorNo,
--B.ItemNo,B.ItemName,B.KickOffDate,B.PlanDate,B.EngineerNo,B.AdvisorNo,
C.HistoryID
FROM Project AS A
INNER JOIN PItem AS B ON A.PNum=B.PNum
INNER JOIN PHistory AS C ON A.PNum=C.PNum And C.HistoryID > '0'
where A.CateMainID='1' and A.ReleaseDate is null
以上这样写会出现重复的PNum

--group by A.PNum
而加这行会错误

要怎么改才行?

语法总还是觉得怪怪的,因为A对B和B对C都是一对多,
还是要在Select后再Select后再Select,做三层Select?

[此贴子已经被作者于2019-9-30 16:10编辑过]

#3
sssooosss2020-07-23 14:46
共同学习
#4
mywisdom882020-07-23 23:26
A表有重复的吧
1