Я хочу рассчитать totaldues(currentamount+anotheramount-receivedamount)
ежемесячно/ежегодно вместе с датой, текущим месяцем, anotheramount, полученным в моем отчете о кристалле. У меня есть 3 таблицы, содержащие следующие столбцы.Как написать sql-процедуру для расчета сумм взносов ежемесячно или ежегодно
Table_1
accountno shipername shiperaddress Executivename
001 john 123, London soma
002 Robi 127, China soma
003 kal 689,India paul
Table_2
Executivename shipername shiperaddress accountno currentamount anotheramount
soma john 123,london 001 1050 1000
soma robi 127,china 002 1100 600
soma robi 127,china 002 500 300
paul kal 689,india 003 600 400
Shipdate
01/15/2012
01/25/2012
02/27/2012
02/14/2012
Table_3
accountno [Date] ReceivedAmount MoneyReceiptNo
001 1/1/2012 500 G 256412
002 1/2/2012 200 D 246521
002 2/5/2012 300 H 254864
003 3/3/2012 200 D 569823
Для этого я сделал следующее по помощи "bendataclear"
Здесь я должен отметить, что эта хранимая процедура создана только для totaldues:
CREATE PROCEDURE [dbo].[rptexetotaldues] @Executivename varchar(20)
AS BEGIN
SELECT SUB.ACCOUNTNO, SUM(SUB.DUE) AS TOTALDUE FROM
(SELECT ACCOUNTNO
, CURRENTAMOUNT AS DUE
FROM TABLE_2
INNER JOIN TABLE_1 -- WILL ONLY WORK IF ACCOUNTNO IS UNIQUE WITHIN TABLE_1
ON TABLE_1.ACCOUNTNO = TABLE2.ACCOUNTNO
WHERE TABLE_1.EXECUTIVENAME = @Executivename
UNION ALL
SELECT ACCOUNTNO
, ANOTHERAMOUNT AS DUE
FROM TABLE_2
INNER JOIN TABLE_1
ON TABLE_1.ACCOUNTNO = TABLE2.ACCOUNTNO
WHERE TABLE_1.EXECUTIVENAME = @Executivename
UNION ALL
SELECT ACCOUNTNO
, -RECEIVEDAMOUNT AS DUE -- NOTE NEGATIVE SIGN
FROM TABLE 3
INNER JOIN TABLE_1
ON TABLE_1.ACCOUNTNO = TABLE3.ACCOUNTNO
WHERE TABLE_1.EXECUTIVENAME = @Executivename
) SUB
GROUP BY SUB.ACCOUNTNO
Может ли кто-нибудь помочь мне, показывая эту хранимую процедуру?
Я хочу, чтобы получить результат в точности как ..
Executive Имя: сомы
Номер счета ... FebruaryDues ... JanuaryDues..AnotherAmount..TotalDues
001 ... ...... 0 ........ 1050 ...... 1000 .... 1550
002 ....... 500 ....... 1100. ...... 900 ........ 2000
Исполнительное название: paul
AccountNo ... FebruaryDues ... JanuaryDues ... AnotherAmount..TotalDues
003 ....... 600 ........ 0 ....... 400 ...... 800
Здесь я хочу упомянуть, что я хочу суммировать (currentAmount) от Shipdate.i, не знаю, как это возможно или нет. Если кто-то подумает, что это возможно, то опубликуйте it.or if кто-то думает, что это может быть сделано по-другому, а затем также высоко оценили
Если это срочно, может быть хорошей идеей сделать вопрос легким для чтения, чтобы люди действительно могли его прочитать. Используйте инструменты форматирования, убедитесь, что ваш вопрос ясен. Опубликуйте то, что вы пробовали. Если вы получаете ошибки, отправьте эти ошибки. –
Это также похоже на дубликат. Но я не знаю, как искать повторяющиеся вопросы. –
Возможный дубликат [Как создать процедуру sql для расчета сумм взносов ежемесячно, ежегодно) (http://stackoverflow.com/questions/10565446/how-to-create-sql-procedure-for-calculating-total-dues-monthly -yearly) и [Как создать процедуру sql для расчета Total dues] (http://stackoverflow.com/questions/10558484/how-to-create-sql-procedure-for-calculating-total-dues) –