我是新来的SQL,我目前正在尝试学习如何在Visual Studio中创建报表。我需要制作一张桌子,图表和其他一些东西。我决定做矩阵作为最后一部分,现在我卡住了。我在SQL Server中编写我的查询。如何将两个SQL查询合并为一个?
我有两个表:工作人员(empID,StaffLevel,姓氏)和WorkOfArt(artID,名称,策展人,helpsCurator)。在Curator和HelpingCurator的专栏中,我使用了empID中的数字。
我希望我的矩阵能够显示每个empID和他们充当策展人的绘画数量以及他们充当帮助策展人的绘画数量(所以我需要三列:empID, 。COUNT(馆长),计数(helpingCurator)
Select Staff.empID, count(WorkOfArt.Curator) as CuratorTotal
FROM Staff, WorkOfArt
WHERE Staff.empID=WorkOfArt.Curator
and Staff.StaffLevel<7
group by Staff.empID;
Select Staff.empID, count(WorkOfArt.HelpingCurator) as HelpingCuratorTotal
FROM Staff, WorkOfArt
WHERE Staff.empID=WorkOfArt.HelpingCurator
and Staff.StaffLevel<7
group by Staff.empID;
我创建了这两个查询和他们的工作完全正常,但我需要它在一个查询
我想:
Select Staff.empID, count(WorkOfArt.Curator) as CuratorTotal,
COUNT(WorkOfArt.HelpingCurator) as HelpingCuratorTotal
FROM Staff FULL OUTER JOIN WorkOfArt on Staff.empID=WorkOfArt.Curator
and Staff.empID=WorkOfArt.HelpingCurator
WHERE Staff.StaffLevel<7
group by Staff.empID;
(以及使用左或右外连接) - 这个人给我EMPID表,但在这两个数列只有0 - 和:
Select Staff.empID, count(WorkOfArt.Curator) as CuratorTotal,
COUNT(WorkOfArt.HelpingCurator) as HelpingCuratorTotal
FROM Staff, WorkOfArt
WHERE Staff.empID=WorkOfArt.Curator
and Staff.empID=WorkOfArt.HelpingCurator
and Staff.StaffLevel<7
group by Staff.empID;
而这一次给我公正的名字的列。
我不知道下一步该怎么做。我试图在谷歌中找到答案,但是我发现的所有解释对我来说都更为先进,所以我无法理解它们......请帮助我吗?提示也很好。
非常非常感谢!这就像我想要的一样!谢谢! – Koralkea
这不需要您的“内部选择”为每个返回运行?我认为内联表会更高效。 – amcdermott
@amcdermott。 。 。表现应该很好,特别是如果两个策展人栏目上有索引。 –