View Full Version : تعیین فیلد بدهکار بستانکار
mohsenm66
دوشنبه 21 آذر 1390, 17:03 عصر
من 2 تا جدول دارم در یک جدول اطلاعات کلی مربوط به شهریه یک ترم دانشجو نظیر شهریه ثابت و متغیر و ... قرار دارد. و در جدول دوم لیست پرداختی های دانشجو ثبت می گردد شامل اطلاعات مبلغ واریز - تاریخ واریز - شماره فیش بانکی و کد بانک و ...
حال میخواهم یک کوری داشته باشم به صورت زیر که وضعیت دانشجو در ترم را در یک ستون نشان دهد :
اگر جمع مبالغ پرداختی دانشجو با مبلغ کل شهریه برابر بود ستون وضعیت = تسویه حساب
اگر کمتر بود = بدهکار
اگر بیشتر بود = بستانکار
tazarvmmr
دوشنبه 21 آذر 1390, 18:23 عصر
دوست عزیز، فکر میکنم بهتر باشه کاری که خودت تا الان انجام دادی رو بنویسی، اینطوری کسانی که میتونن جواب بدن، هم جوابهای بهتری میدن و هم خودشونو با یه سوال روبرو نمیبینن که از a تا z رو باید بگن! اگر ممکنه جدولتو، با کوئری که نوشتی هر چنداگر جواب درستی نمیده یا ناقصه بزار. من مطمعنم سریع دوستان جواب میدن، جوابی هم میدن که به دردت میخوره! اینطوری نهایتا یکی میاد میگه بهتره از فلان روش استفاده کنی و این چیزیو برات روشن نمیکنه.
baktash.n81@gmail.com
سه شنبه 22 آذر 1390, 08:50 صبح
سلام
در دستور Select می تونی از Case استفاده کنی ... که دقیقا کارش همینه ... البته به نظر من خیلی بهتره که اینجا فقط سرنخ بگیری و خودت بری دنبالش اینجوری چنتا چیز جدید تر هم یاد میگیری ... همون جریان ماهی و ماهیگیریه
اما Case کلیاتش اینجوری
Select CASE
WHEN Boolean_expression THEN result_expression
WHEN Boolean_expression THEN result_expression
WHEN Boolean_expression THEN result_expression
END
From t1 join t2 on ....
دیگه فکر نمی کنم خیلی سخت باشه جای Boolean_expression شرطت رو قرار بده جای result_expression هم بستانکار و بدهکارو اینارو قرار بده ...
mohsenm66
چهارشنبه 23 آذر 1390, 18:42 عصر
من این خروجی را میخواهم :
اگر جمع مبالغ پرداختی = مبلغ شهریه ثابت + شهریه متغیر بود اسم دانشجو را به عنوان جواب به من بدهد.
فیلدهای جدول شهریه =
student_code =شماره دانشجویی
student_nimsal = نیم سال تحصیلی
student_sconst = شهریه ثابت
student_svariable = شهریه متغیر
فیلدهای جدول پرداخت =
code
mablagh = مبلغ پرداخت شده
tarikh = تاریخ واریز
fish =شماره فیش واریزی
bank = کد بانک
tazarvmmr
چهارشنبه 23 آذر 1390, 19:38 عصر
سلام
در دستور Select می تونی از Case استفاده کنی ... که دقیقا کارش همینه ... البته به نظر من خیلی بهتره که اینجا فقط سرنخ بگیری و خودت بری دنبالش اینجوری چنتا چیز جدید تر هم یاد میگیری ... همون جریان ماهی و ماهیگیریه
اما Case کلیاتش اینجوری
Select CASE
WHEN Boolean_expression THEN result_expression
WHEN Boolean_expression THEN result_expression
WHEN Boolean_expression THEN result_expression
END
From t1 join t2 on ....
دیگه فکر نمی کنم خیلی سخت باشه جای Boolean_expression شرطت رو قرار بده جای result_expression هم بستانکار و بدهکارو اینارو قرار بده ...
تا اونجایی که میدونم بعد از Select نمیشه از Case استفاده کرد و میشه فقط روی مقدار یک فیلد یا متغیر اعمالش کرد
مثلا:
select fieldName = case when Boolean_expression then result_expression
when Boolean_expression then result_expression
end
from tblName
baktash.n81@gmail.com
پنج شنبه 24 آذر 1390, 12:53 عصر
می شه استفاده کرد ...
select *,case isactive when 0 then N'' when 1 then N' ' end from users
baktash.n81@gmail.com
پنج شنبه 24 آذر 1390, 12:54 عصر
من این خروجی را میخواهم :
اگر جمع مبالغ پرداختی = مبلغ شهریه ثابت + شهریه متغیر بود اسم دانشجو را به عنوان جواب به من بدهد.
فیلدهای جدول شهریه =
student_code =شماره دانشجویی
student_nimsal = نیم سال تحصیلی
student_sconst = شهریه ثابت
student_svariable = شهریه متغیر
فیلدهای جدول پرداخت =
code
mablagh = مبلغ پرداخت شده
tarikh = تاریخ واریز
fish =شماره فیش واریزی
bank = کد بانک
خوب در این حالت باید شرط رو توی Where قرار بدی دیگه ... مشکلت کجاست ؟!
mohsenm66
سه شنبه 29 آذر 1390, 17:32 عصر
می شه استفاده کرد ...
select *,case isactive when 0 then N'' when 1 then N' ' end from users
میشه راجع به این کد یکم توضیح بدی که چیکار میکنه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.