View Full Version : سئوال در مورد ساخت کوئری تراز حسابداری
ahsaya
پنج شنبه 19 بهمن 1391, 12:41 عصر
با سلام
در جدول تعریف حساب tbl1 که دارای فیلدهای Acc_Code,Name,Gru_Code,BedBes,Bank,HasChild,AccLev el است هر حساب معرفی می شود .
اطلاعات اسناد در tbl2 ذخیره می شود که دارای فیلدهای SerialNumber,BandNo,lBandNo,Acc_Code,Bede,Best است .
حالا من به دنبال کوئری هستم که با آن گزارش تراز حسابها رو بگیرم .
گزارش تراز من هم باید به نحوی باشد که جمع ارقام بدهکار و بستانکار حسابهای مختلف در اسناد مختلف رو بگیرد و تحت عنوان بدهکار و بستانکار در ستون بدهکار و بستانکار بیاورد و نتیجه آنها را در ستونهای مانده بدهکار و مانده بستانکار بیاورد .
اگر از دوستان کسی راهنمایی بکنه ممنون می شم .
محمد سلیم آبادی
پنج شنبه 19 بهمن 1391, 21:34 عصر
ممکنه راجب گزارش تراز توضیح بدین.
لطفا بر اساس داده های نمونه نتیجه مورد نظر خود را شرح دهید.
ahsaya
شنبه 21 بهمن 1391, 11:09 صبح
با سلام و تشکر از توجه دوستان
همانطور که گفته شد در جدول tbl1 حسابها تعریف می شوند :
عکس ضمیمه 1 : 99806
در جدول tbl2 هم اطلاعات مربوط به اسناد وارد می شوند :
عکس ضمیمه 2 : 99807
حالا نیاز به ساخت گزارشی به شکل عکس ضمیمه 3 هست تا با آن گزارشی تحت عنوان گزارش تراز را ساخت
عکس ضمیمه 3 : 99808
ملاحظات :
در گزارش لازم است هر کد حساب به صورت جمع بدهکار و جمع بستانکار و مانده بدهکار و مانده بستانکار نمایش داده شود .
در انتهای گزارش نیاز هست که جمع هر ستون نمایش داده شود .
همیشه جمع بدهکار با جمع بستانکار برابر است .
همیشه مانده بدهکار در انتهای گزارش با مانده بستانکار برابر است .
باز هم از محبت دوستان تشکر می کنم .
محمد سلیم آبادی
شنبه 21 بهمن 1391, 11:54 صبح
این را امتحان کنید. فقط باید نام ستون ها را مطابق جدولتان بنویسید.
select t.shomare_hesab,
t.hesab_name,
bedehkarTotal,
bestankarToral,
case when bedehkarTotal - bestankarToral > 0 then
bedehkarTotal - bestankarToral else 0 end as bedehi,
case when bestankarToral - bedehkarTotal > 0 then
bestankarToral - bedehkarTotal else 0 end as bedehi,
sum(bedehkarTotal) over(),
sum(bestankarToral) over()
from
(
select shomare_hesab,
sum(bedehkar) bedehkarTotal,
sum(bestankar) bestankarToral
from table_2
group by shomare_hesab
)d
inner join table_1 t
on d.shomare_hesab = t.shomare_hesab;
ahsaya
شنبه 21 بهمن 1391, 18:56 عصر
با سلام و تشکر از شما
کد رو من تست کردم . اما در خطوط 9 و 10 همچنان مشکل دارم و با خطا SQL مواجه می شوم .
باز هم از شما تشکر می کنم
محمد سلیم آبادی
شنبه 21 بهمن 1391, 21:28 عصر
نکنه نسخه اسکیولتون 2000 هست؟
در آن نسخه امکان استفاده از توابع تجمعی window وجود ندارد.
ahsaya
دوشنبه 23 بهمن 1391, 07:44 صبح
با سلام و تشکر از شما
نخیر از SQL2005 استفاده می کنم .
محمد سلیم آبادی
دوشنبه 23 بهمن 1391, 08:03 صبح
اما در خطوط 9 و 10 همچنان مشکل دارم و با خطا SQL مواجه می شوم .
لطفا متن خطا را در اینجا قرار دهید تا بررسی شود
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.