Как использовать запросы множественного выбора sum () в хранимой процедуре - PullRequest
0 голосов
/ 09 октября 2019

У меня есть хранимая процедура challan, которая работает за плату challan.

Но теперь я хочу показать взносы, полученные с помощью четырех запросов.

ИЯ хочу добавить, чтобы добавить две в моей challan хранимой процедуре:

create proc [dbo].[challan]
    @sessionid int,
    @month nvarchar(20)
as
    select distinct 
        student.Student_id as [A/c #], student.Student_Name, 
        parent.father_name, class.class_numeric, invoice.Fee_description, 
        invoice.Amount, invoice.issue_date, invoice.month 
    from 
        student
    join 
        parent on student.father_nic = parent.father_nic
    join 
        allocate_class on student.Student_id = allocate_class.Student_id
    join 
        class on class.class_id = allocate_class.class_id
    join 
        session on allocate_class.session_id = session.session_id
    join 
        invoice on student.Student_id = invoice.Student_id
    where 
        session.session_id = @sessionid 
        and student.status = 'active' 
        and invoice.month = @month
    order by 
        class.class_numeric asc

Этот запрос используется для сбора платы за текущий месяц, которая будет вычтена из взносов, поскольку она уже показана в challan:

SELECT 
    SUM(invoice.Amount) 
FROM 
    invoice 
WHERE 
    invoice.month = 'November-2019' 
    AND invoice.Student_id = '115' 

Теперь я запускаю два других, которые используются для расчета суммы студента всех challan в таблице счетов-фактур, из которой мне нужно минус плата за текущий месяц

SELECT SUM(invoice.Amount) 
FROM invoice 
WHERE invoice.Student_id = '115

Это используется для суммирования всей полученной платы студента в таблице квитанций:

SELECT SUM(Recipt.Paid_amount) 
FROM Recipt 
WHERE Recipt.Student_id = '115'

Теперь проблема состоит в том, чтобы минус 3) запрос сверху 1) и два) запроса, а затем поставитьв последней из challan хранимых процедур.

1 Ответ

0 голосов
/ 09 октября 2019

Вы можете использовать условие CASE для достижения того же

    select 
    student.Student_id as [A/c #], student.Student_Name, parent.father_name,class.class_numeric, invoice.Fee_description, invoice.Amount, invoice.          issue_date, invoice.month ,
    SUM(CASE WHEN invoice.month = 'November-2019' AND invoice.Student_id = '115' THEN invoice.Amount ELSE 0 END)
from student
join parent on student.father_nic = parent.father_nic
join allocate_class on student.Student_id = allocate_class.Student_id
join class on class.class_id = allocate_class.class_id
join session on allocate_class.session_id = session.session_id
join invoice on student.Student_id = invoice.Student_id
where session.session_id=  @sessionid AND student.status = 'active' AND invoice.month = @month
order by class.class_numeric asc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...