PDA

View Full Version : سوال: بدست آوردن مانده حساب



yaradm
یک شنبه 15 شهریور 1388, 10:02 صبح
من دارم برنامه حسابداری مینویسم و توی بدست آوردن مانده حساب از طریق sql دچار مشکل شدهم .
در ضمن برنامه رو تو C# مینویسم.

z_bluestar
یک شنبه 15 شهریور 1388, 12:05 عصر
خوب Sql تون ايجا بذاريد كه بتونيم كمك كنيم بهتون

shahbazyaghoobi
یک شنبه 15 شهریور 1388, 12:20 عصر
معمولا این کارا با استفاده از storprocedure و courser که سرعت بالایی هم دارد انجام میدهند.

yaradm
چهارشنبه 18 شهریور 1388, 11:08 صبح
معمولا این کارا با استفاده از storprocedure و courser که سرعت بالایی هم دارد انجام میدهند.


خواهش میکنم میشه بیشتر توضیح بدید
اگر میشه کدش رو برام بذارید

yaradm
چهارشنبه 18 شهریور 1388, 11:22 صبح
خوب Sql تون ايجا بذاريد كه بتونيم كمك كنيم بهتون
فکر کنم این تصویر منظورم خوب برسونه
ممنون

z_bluestar
چهارشنبه 18 شهریور 1388, 12:09 عصر
منظورم اين بود كه Code SQl رو بذاريد اين جا تا ما ببينيم ايرادش چيه ؟؟؟

بعد اصلا از روي تصوير نمي شه فهميد كه چه كار مي خواين بكنيد ؟؟؟؟؟

محمد سلیم آبادی
چهارشنبه 18 شهریور 1388, 12:19 عصر
جناب yaradm تاپیک ضمیمه شده ی همین تالار را مطالعه کنید (با نام "چگونه داده ها و کد...")
سپس مشکلتان را به طور کامل و مفصل مطرح کنید و سپس کد جدول، داده ها و Query که تا حالا سعی می کردید با استفاده از آن مساله را حل کنید را ارسال کنید.

shahbazyaghoobi
جمعه 20 شهریور 1388, 16:54 عصر
از این که دیر جواب دادم معذرت می خوام اینم یه نمونه کد که خودم استفاده کردم



DECLARE

c1 cursor FORWARD_ONLY FOR

Select bedehkar,bestankar from @HesabMoshtary
OPEN


c1

FETCH


c1 INTO @Bedehkar,@Bestankar

WHILE


(@@fetch_status = 0)

BEGIN
set @Sum=@Sum+@Bestankar-@Bedehkar
if(@Sum<0)
Begin
Set @State=N'بدهکار'
Set @Sum2=-@Sum
ENd
else if(@Sum>0)
Begin
Set @State=N'بستانکار'
Set @Sum2=@Sum
End
else
begin
set @State=N'بی حساب'
set @Sum2=@Sum
end
update @HesabMoshtary
set MandehHesab=@Sum2,
State=@State
where current of c1
FETCH c1 INTO @Bedehkar,@Bestankar
END
CLOSE c1
DEALLOCATE


c1

yaradm
شنبه 21 شهریور 1388, 17:02 عصر
از این که دیر جواب دادم معذرت می خوام اینم یه نمونه کد که خودم استفاده کردم

DECLARE

c1 cursor FORWARD_ONLY FOR
Select bedehkar,bestankar from @HesabMoshtary


OPEN

c1


FETCH

c1 INTO @Bedehkar,@Bestankar


WHILE

(@@fetch_status = 0)


BEGIN

set @Sum=@Sum+@Bestankar-@Bedehkar
if(@Sum<0)
Begin


Set @State=N'بدهکار'


Set @Sum2=-@Sum
ENd


else if(@Sum>0)
Begin


Set @State=N'بستانکار'


Set @Sum2=@Sum
End


else


begin


set @State=N'بی حساب'


set @Sum2=@Sum
end


update @HesabMoshtary
set MandehHesab=@Sum2,
State=@State
where current of c1
FETCH c1 INTO @Bedehkar,@Bestankar


END
CLOSE

c1


DEALLOCATE

c1


اولا ممنون از جوابی که دادید.
ثانیا من میتونم این کد رو توی سی شارپ استفاده کنم ؟؟
ثالثا اگه یکمی درباره این کد توضیح بدید خیلی ممنون میشم . چون توی sql زیاد وارد نیستم .
اگر بخوام توی sql بنویسم کجاش وارد کنم که کد ذخیره بشه؟
خیلی خیلی ممنونم.

yaradm
پنج شنبه 26 شهریور 1388, 11:11 صبح
اگه جواب بدید لطف میکنید:گریه::گریه:

حمیدرضاصادقیان
پنج شنبه 26 شهریور 1388, 11:45 صبح
سلام دوست عزیز.در سایت دنبال عبارت بدهکار یا بستانکار بگردید کاملا توضیح داده شده است.
موفق باشید

shahbazyaghoobi
جمعه 27 شهریور 1388, 12:11 عصر
دوست عزیز باید داخل sql یک storeprocedure تعریف کنی و این کد داخلش استفاده کنی از طریق C# می تونی storeprocedure اجرا کنی البته باید با توجه به برنامت تغییرات لازم را بدی به نظر من اول شما یکم در مورد storeprocedure ها و روش استفاده از آنها مطالعه کنی خیلی بهت کمک کنه.