2015-09-28 77 views
0

计算总我有3个属性表:使用SQL查询

Title   TotalNumberOfAuthors    TotalNumberOfPublishedAuthors 
A     3           1 
B     2           2 
C     4           2 
D     2           1 

我试图创建一个显示的TotalNumberOfPublishedAuthors之和为TotalNumberOfNonPublishedAuthors总和是一个查询(TotalNumberofAuthors - TotalNumberOfPublishedAuthors)..

这是我所生成的查询,但不显示预期的结果:

SELECT SUM(Submission.TotalNumberOfPublishedAuthors),   
     (SUM(Submission.TotalNumberOfAuthors) - SUM(Submission.TotalNumberOfPublishedAuthors)) AS Number_of_Non_Published_Authors 
FROM Submission INNER JOIN ((Faculty INNER JOIN School 
ON Faculty.FacultyID = School.[FacultyID]) INNER JOIN (Researcher INNER JOIN ResearcherSubmission 
ON Researcher.ResearcherID = ResearcherSubmission.ResearcherID) 
ON School.SchoolID = Researcher.SchoolID) 
ON Submission.SubmissionID = ResearcherSubmission.SubmissionID; 

这是我想要得到的结果:

TotalNumberofPublishedAuthors      TotalNumberofPublishedAuthors 
     6              5 
+0

你的问题很混乱。你说你有一张桌子,然后你用多个桌子显示一个查询。你可以用一些示例数据设置一个SQL小提琴吗? –

+0

此外,它将有助于显示正在返回的值,或者SQL只是不起作用? – MiguelH

+1

看着你已经使用过的查询应该可以得到你所期望的结果。 'SUM(Submission.TotalNumberOfPublishedAuthors), (SUM(Submission.TotalNumberOfAuthors) - SUM(Submission.TotalNumberOfPublishedAuthors))' 但是按照你的结果是不同的,你会得到什么? – Abhishek

回答

1
SELECT <Column Names> 
FROM <Table Name> 
UNION ALL 
SELECT NULL,SUM(<Column name>),null,sum(<RunningTotal or AnyTotal>) 
FROM <Table Name> 
1

如果你真的有表中的列[投稿]称为[TotalNumberOfPublishedAuthors]和[TotalNumberOfAuthors]如图所示那么就没有必要加入任何其他表格。只需执行总和,因为您已经在查询中拥有它们,但没有更多表格。

SQL Fiddle

的MS SQL Server 2014架构设置

CREATE TABLE Submission 
    ([Title] varchar(1), [TotalNumberOfAuthors] int, [TotalNumberOfPublishedAuthors] int) 
; 

INSERT INTO Submission 
    ([Title], [TotalNumberOfAuthors], [TotalNumberOfPublishedAuthors]) 
VALUES 
    ('A', 3, 1), 
    ('B', 2, 2), 
    ('C', 4, 2), 
    ('D', 2, 1) 
; 

查询1

SELECT 
     SUM(Submission.TotalNumberOfPublishedAuthors) AS TotalNumberOfPublishedAuthors 
    , SUM(Submission.TotalNumberOfAuthors) 
    - SUM(Submission.TotalNumberOfPublishedAuthors) AS Number_of_Non_Published_Authors 
FROM Submission 

Results

| TotalNumberOfPublishedAuthors | Number_of_Non_Published_Authors | 
|-------------------------------|---------------------------------| 
|        6 |        5 |