我可能会问这个问题是错的,这是我问题的一部分,但是:
Project_Table上的列:
ProjectID, ProjectName, StartDate, EndDate, Coordinator
Donation_Table上的专栏:
DonationID, DonationAMT, DonationDate, ProjectID
所以,我正在尝试计算每个项目已经做出多少承诺。
所需的输出将是:
ProjectId, ProjectName, #ofPledges
我可以通过以下方式获得具体计数:
SELECT count(ProjectID) FROM Donation_Table where ProjectID = 1;
但是我正在努力让ProjectName显示出来,这来自我的Project_Table;同时显示所有结果,而不仅仅是SPECIFIC ProjectID。我希望看到我的所有ProjectID,所有项目名称,然后是每个项目收到的捐赠数量。是否可以一次显示所有这些?
提前致谢!
答案 0 :(得分:2)
您需要加入和分组:
SELECT P.ProjectID, P.ProjectName, Count(DonationID)
FROM Project_Table P
JOIN Donation_Table D ON P.ProjectID = D.ProjectID
GROUP BY P.ProjectID, P.ProjectName
这是一个简单的东西,可能需要在stackoverflow上提出问题。我建议阅读有关如何使用SQL的内容 - 任何体面的书或文章都将在前几章中介绍这一点。
注意如果你想看到零捐赠物品,你需要一个左连接:
SELECT P.ProjectID, P.ProjectName, Count(DonationID)
FROM Project_Table P
LEFT JOIN Donation_Table D ON P.ProjectID = D.ProjectID
GROUP BY P.ProjectID, P.ProjectName
答案 1 :(得分:0)
首先确定每个项目的捐赠数量:
SELECT ProjectID, count(*)
FROM Donation_Table
GROUP BY ProjectID
结果是一个可以与项目表一起加入的新表:
SELECT p.*, x.cnt
FROM Project_Table p
JOIN (
SELECT ProjectID, count(*) as cnt
FROM Donation_Table
GROUP BY ProjectID
) X
ON X.ProjectID = p.ProjectID