суммирование результирующих значений из представления sql как итог

У меня есть три таких таблицы: Больница, Диагностика и Фармация.

Больница

HospitalID   int
PatientID    int
Due         float

Диагностика

DaignosticID   int
PatientID    int
Due         float

Фармация

FarmacyID   int
PatientID    int
Due         float

столбец patientID — это pk из таблицы Patient.

PatientId  int
Patient name  var

У меня есть запрос, чтобы показать все взносы пациента из другой таблицы и суммировать их как общее количество.

Мне удалось получить все взносы пациента, но как их суммировать?

Мой запрос:

declare @patient int set @patient=1
BEGIN 
  SELECT 
   dbo.Master.Name, 
    dbo.Diagonistic.Due AS DaigiDue, 
    dbo.Farmacy.Due AS FramaDue,            
    dbo.Hospital.Due AS HospiDue 
 FROM dbo.Diagonistic 
 FULL OUTER JOIN dbo.Master ON dbo.Diagonistic.PatientId = dbo.Master.PatientId 
 FULL OUTER JOIN dbo.Farmacy ON dbo.Master.PatientId = dbo.Farmacy.PatientId 
 FULL OUTER JOIN dbo.Hospital ON dbo.Master.PatientId = dbo.Hospital.PatientId 
 where 
   dbo.Master.PatientId= @Patient 
end

person user2180894    schedule 16.04.2013    source источник
comment
что вы подразумеваете под общей суммой ... означает сумму всех трех или сумму отдельных категорий (fram, hosp, diag)   -  person Amit Singh    schedule 16.04.2013


Ответы (1)


Попробуйте с этим...

Declare @Patient Int 
Set @Patient=1
Begin 

    Select 
    dbo.Master.Name, 
    dbo.Diagonistic.Due AS DaigiDue, 
    dbo.Farmacy.Due AS FramaDue,            
    dbo.Hospital.Due AS HospiDue,
    Isnull(dbo.Diagonistic.Due,'0') +  Isnull(dbo.Farmacy.Due,'0') + Isnull(dbo.Hospital.Due,'0') as TotalDue     
    From dbo.Diagonistic 
    Full Outer Join dbo.Master ON dbo.Diagonistic.PatientId = dbo.Master.PatientId 
    Full Outer Join dbo.Farmacy ON dbo.Master.PatientId = dbo.Farmacy.PatientId 
    Full Outer Join dbo.Hospital ON dbo.Master.PatientId = dbo.Hospital.PatientId 
    Where 
        dbo.Master.PatientId= @Patient 

End
person Marimuthu Kandasamy    schedule 16.04.2013