2015-09-28 2 views
0

У меня есть таблица с 3-мя признаками:вычислить общее с помощью SQL Query

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 Fiddle с некоторыми образцами данных? –

+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

Сервер 2014 Настройка схемы MS SQL:

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 | 
Смежные вопросы