Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL唯一的Where和Count_Sql_Oracle - Fatal编程技术网

SQL唯一的Where和Count

SQL唯一的Where和Count,sql,oracle,Sql,Oracle,我可能问错了这个问题,这是我问题的一部分,但是: 项目表上的列: ProjectID, ProjectName, StartDate, EndDate, Coordinator 表中的列: DonationID, DonationAMT, DonationDate, ProjectID 因此,我正试图数一数,看看每个项目已经做出了多少承诺 预期的产出将是: ProjectId, ProjectName, #ofPledges 我可以通过以下方式获得特定计数: SELECT count(Pr

我可能问错了这个问题,这是我问题的一部分,但是:

项目表上的列:

ProjectID, ProjectName, StartDate, EndDate, Coordinator
表中的列:

DonationID, DonationAMT, DonationDate, ProjectID
因此,我正试图数一数,看看每个项目已经做出了多少承诺

预期的产出将是:

ProjectId, ProjectName, #ofPledges
我可以通过以下方式获得特定计数:

SELECT count(ProjectID) FROM Donation_Table where ProjectID = 1;
但是我正在努力让ProjectName显示出来,它来自我的Project_表;显示所有结果时,而不仅仅是特定的ProjectID。我想看看我所有的项目,所有的项目名称,然后计算每个项目收到了多少捐款。是否可以一次显示所有这些内容


提前谢谢

您需要的是加入和分组:

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

首先确定每个项目的捐赠数量:

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

我认为您应该有一个
左连接
来获取所有项目。@GordonLinoff-True这将不会有具有0捐赠的项目。我遇到的问题是,我的左连接没有使用GROUP BY。我感到非常沮丧,这帮了我很大的忙。非常感谢。我一直在阅读SQL,其中一些手册让我感到非常困惑,这就是为什么我最终在这里提问的原因。