ایجاد گزارش بدهکار بستانکار مانده حساب بالانس حساب با SQL Server - نسخهی قابل چاپ +- انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری (http://forum.a00b.com) +-- انجمن: سوالها و مقاله های آموزشی (/forumdisplay.php?fid=1) +--- انجمن: مقاله های آموزشی (/forumdisplay.php?fid=3) +--- موضوع: ایجاد گزارش بدهکار بستانکار مانده حساب بالانس حساب با SQL Server (/showthread.php?tid=33) |
ایجاد گزارش بدهکار بستانکار مانده حساب بالانس حساب با SQL Server - ali - 10-12-2015 03:13 AM می خواهیم تابعی در SQL Server ایجاد نماییم که توسط آن بتوانیم تراز حساب اشخاص را به صورت بدهکار بستانکار و مانده بدست آوریم ، به این صورت که اطلاعات مربوط به حساب یک نفر را از یک جدول گرفته و مانده حساب ها ، بدهکار و بستانکار را محاسبه کند. در این روش هر عدد با عدد قبلی خود جمع می شود و در روبرای عدد جاری مقدار مانده نوشته می شود. به مثال زیر دقت فرمائید: بدهکار بستانکار مانده ========================= 1000 0 1000 0 200- 800 450 0 1250 ابتدا یک جدول با مشخصات زیر ایجاد می کنیم.که اطلاعات مربوط به حساب افراد را نگه داری می کند. کد: CREATE TABLE [dbo].[tblAcount] فیلد AcountStatus مقدار حساب را نشان می دهد. فیلد Name نشان دهنده نام فرد دارای حساب است. اطلاعات را به صورت زیر وارد جدول می کنیم. کد: INSERT INTO dbo.tblAcount ( AcountStatus, Name )VALUES ( 100, 'ali') تعریف تابع عملکرد تابع به این صورت است که نام صاحب حساب را می گیرد و مقادیر حساب به همراه مانده آن را محاسبه می کند. کد: CREATE function [dbo].[UDFAcount2](@name nvarchar(20)) با استفاده از این تابع، اطلاعات را از جدول tblAcount دریافت کرده و در یک جدول جدید با مشخصات زیر وارد کنیم تا مقدار باقیمانده حساب را محاسبه کند.با این شرط که اگر مقدار AcountStatus مثبت باشد، مقدار آن در ستون debit قرار گرفته و مقدار credit صفر شود. اگر مقدار AcountStatus منفی باشد مقدار آن را در ستون credit قرار داده و مقدار فیلد debit صفر می شود. کد: @tblAcount table( قطعه کد زیر بررسی می کند که آیا مقدار AcountStatus مثبت است یا خیر؟ در صورتی که مقدار آن مثبت باشد مقدار AcountStatus را در ستون debit قرار می دهد و در صورت منفی بودن مقدار صفر را قرار می دهد. کد: Isnull((select AcountStatus from tblAcount قطعه کد زیر بررسی می کند که آیا مقدار AcountStatus منفی است یا خیر؟ در صورتی که مقدار آن منفی باشد مقدار AcountStatus را در ستون credit قرار می دهد و در صورت مثبت بودن مقدار صفر را قرار می دهد. کد: Isnull((select AcountStatus from tblAcount این قسمت نیز مقدار مانده را محاسبه می کند.برای محاسبه مانده برای هر ردیف باید مقدار حساب فعلی یک نفر را با حساب های قبلی او جمع کرد. کد: (select sum(AcountStatus) from tblAcount اجرای تابع تابع را برای محاسبه مانده حساب فردی به نام ali اجرا می کنیم. کد: SELECT * FROM dbo.UDFAcount2('ali') نتیجه به صورت زیر است. (ارسال شده توسط آقای مهندس امین امیرخانی کارشناس ارشد نرم افزار) |