我正在尝试将三个表中的列与一个Pivot表组合在一起,并且它给了我重复的行,其中枢轴值已关闭,我无法找到解决它的方法。
这是我到目前为止的查询:
SELECT
r.resourceId AS ResourceID,
r.resourceName AS ResourceName,
p.projectId As ProjectId,
p.projectNumber AS ProjectNumber,
p.projectName AS ProjectName,
p.projectSystem AS ProjectSystem,
p.projectManager AS ProjectManager,
a.[May 2014],
a.[June 2014]
FROM
Projects p, Resources r
JOIN (
SELECT * FROM allocation a
PIVOT (SUM(allocationValue) FOR AllocationMonth IN ([May 2014], [June 2014])) PVT
) a ON (r.resourceId = a.resourceId) ORDER BY resourceId
我知道原因是因为一个资源可能被分配给多个项目而且这个查询没有区别对象,我的问题是如何根据resourceId以及projectId进行调整? / p>
当我将最后一行编辑为“ON(r.resourceId = a.resourceId AND p.projectId = a.projectId)ORDER BY resourceId”时出现此错误“多部分标识符”p.projectId“无法受到约束。“
我是SQL的新手,所以任何帮助都会非常感激!
答案 0 :(得分:1)
试试这个:
SELECT
r.resourceId AS ResourceID,
r.resourceName AS ResourceName,
p.projectId As ProjectId,
p.projectNumber AS ProjectNumber,
p.projectName AS ProjectName,
p.projectSystem AS ProjectSystem,
p.projectManager AS ProjectManager,
a.[May 2014],
a.[June 2014]
FROM
Projects p, Resources r
JOIN (
SELECT * FROM allocation a
PIVOT (SUM(allocationValue) FOR AllocationMonth IN ([May 2014], [June 2014])) PVT
) a ON (r.resourceId = a.resourceId) ORDER BY resourceId
where p.projectId = a.projectId