نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
کد زیر رو در تست کنید
select
C.* ,
(CASE WHEN Mande>0 THEN N'بدهکار'
WHEN Mande<0 THEN N'طلبکار'
ELSE N'تسویه'
END) as Vaziat
from
(
select
B.* ,
(B.RunningTotalBedehkari - B.RunningTotalBestankari) as Mande
From
(
SELECT
A.*,
RunningTotalBedehkari = (SELECT SUM(Bedehkar)
FROM dbo.tbl_Kalaei
WHERE tbl_Kalaei.Kod_Moshtari = A.Kod_Moshtari
AND tbl_Kalaei.Tarikh <= A.Tarikh),
RunningTotalBestankari = (SELECT SUM(Bostankar)
FROM dbo.tbl_Kalaei
WHERE tbl_Kalaei.Kod_Moshtari = A.Kod_Moshtari
AND tbl_Kalaei.Tarikh <= A.Tarikh)
FROM tbl_Kalaei AS A
WHERE A.Sharh not like N'کالای :%'
) AS B
) C
ORDER BY C.Kod_Moshtari , C.Tarikh

اینکه گفتم زمان رو هم ذخیره کنید برای اینکه در سلکت داخلی برحسب تاریخ و زمان میاد جمع رو برای رکوردهای قبل انجام میده. حالا اگر فقط تاریخ باشه، جمع ممکن هست اشتباه بشه. البته این به منطقی که پیاده کردید برمیگرده که آیا در یک روز برای یک شخص چند رکورد ذخیره میشه یا نه؟
ممنونم.کارتون 20
کدتون هم سریعه و هم جالب.
فقط مشکلاتی داره.محاسبات رو درست انجام نمیده.بعد شما اومدین کلا کالای: رو فیلتر کردین که نمایش نده.من میخوام نمایش بده اما مبالغش تو محاسبات فیلتر بشه.
دقیقا مثل این شکل:

230.PNG

اما نتیجه کار شما شده این:
1202265.PNG