ورود

View Full Version : کوئری برای محاسبه مانده از قبل



unforgiven
دوشنبه 16 تیر 1393, 11:41 صبح
سلام به همگی
با استفاده از کوئری زیر تونستم مانده رو بدست بیارم .

SELECT d_num, c_date,narration,debit,credit,(select sum(credit-debit) from cash
where d_num<=Ca.d_num) AS BALANCE FROM cash AS Ca
WHERE c_date Between '1393/04/10' And '1393/04/15' ORDER BY d_num

حالا میخوام با استفاده از تاریخ بتونم مانده از قبل رو بدست بیارم . این کوئری رو چطور بنویسم که خروجیش شبیه زیر باشه؟

باقیمانده برداشت دریافت شرح تاریخ شماره
5000 مانده از قبل
6000 0 1000 واریز 1393/04/10 1
4000 2000 0 برداشت 1393/04/12 2
7000 0 3000 واریز 1393/04/15 3


پیشاپیش متشکرم

unforgiven
سه شنبه 17 تیر 1393, 10:14 صبح
دوستان این همه برنامه حسابداری نوشتن یعنی تو برنامشون مانده از قبل رو محاسبه نکردن !!!
اساتید لطفا ما را دریابید یا حداقل راهنمایی کنید .

MH2538
سه شنبه 24 تیر 1393, 10:13 صبح
اولین راه اینه که بر اساس تاریخ های مورد نظرت چند تا کوئری بنویسی و اونها رو با هم Union کنی/

s.karim
سه شنبه 24 تیر 1393, 10:54 صبح
SELECT
d_num ,
c_date ,
narration ,
debit ,
credit ,


(
SELECT
SUM(credit)
FROM
cash
WHERE
c_date < '1393/04/10'

) AS MandehCredit,

(
SELECT
SUM(debit)
FROM
cash
WHERE
c_date < '1393/04/10'

) AS MandehCredit,

(
SELECT
SUM(credit - debit)
FROM
cash
WHERE
d_num <= Ca.d_num
) AS BALANCE
FROM
cash AS Ca
WHERE
c_date BETWEEN '1393/04/10' AND '1393/04/15'
ORDER BY
d_num


در این صورت دو ستون جدید خواهی داشت که مانده از قبل بدهکار و مانده از قبل بستانکار رو برای هر ردیف نشون میده

s.karim
پنج شنبه 26 تیر 1393, 12:28 عصر
راه صد در صد بهتر به صورت زیر است:
یعنی استفاده از Running Total:

121198