View Full Version : مشکل در Query
Saeid59_m
دوشنبه 20 آذر 1385, 14:47 عصر
سلام
من یه یانک دارم که مشخصات افراد توی اون ذخیره شده البته همراه با مانده حسابشون .
فیلدها از این قراره :
Name نام شخص
Hesab_Aval حساب شخص از قبل
Is_Bed یه فیلد بولی که اگه True باشه یعنی حساب اولیه شخص بدهی بوده
Now_Bed مجموع بدهی شخص بدون احتساب (حساب اولیه)
Now_Bes مجموع بستانکاری شخص بدون احتساب (حساب اولیه)
حالا :
دو تا فیلد محاسبه ای درست کردم که یکی مانده حساب رو نشون می ده و یکی دیگه نوع حساب (اعم از بدهکار - بستانکار - بی حساب)
F_Hesab فیلد محاسبه مانده حساب
F_Tashkhis فیلد محاسبه نوع حساب
مشکل :
می خواهم یک کوری بنویسم که مثلاً تمام افراد (بدهکار) را نشون بده
اگه راهنمائی کنید ممنون می شم .
leily2000
دوشنبه 20 آذر 1385, 15:06 عصر
سلام
یه سوال دارم
گفته بودید :
"F_Tashkhis فیلد محاسبه نوع حساب"
اگه درست فهمیده باشم یک فیلد سه مقداره است که خودتان محتوایش را انتخاب می کنید . چرا از این فیلد و مقدار مربوط به بدهکارش استفاده نمی کنید.
اگر هم که درست نفهمیدم بیشتر توضیح بدهید .
موفق باشید.
Saeid59_m
دوشنبه 20 آذر 1385, 15:15 عصر
سلام با تشکر از راهنمائی شما
F_Hesab
F_Tashkhis
این دو فیلد را من در کوری ایجاد کرده ام (در بانک وجود ندارد فیلد محاسباتی ) و نتایجشان را از فیلد های
Hesab_Aval
Is_Bed
Now_Bed
Now_Bes
بدست می آورند و وقتی این دستور را در کوری می نویسم ارور می دهد
SELECT *
FROM "Pepole.DB"
WHERE F_Tashkhis='بدهکار'
ORDER BY Name
پیغام ارور
Invalid Field Name
F_Tashkhis
leily2000
دوشنبه 20 آذر 1385, 15:32 عصر
دوباره سلام
یه فیلدی داشتید :
"Now_Bed مجموع بدهی شخص"
فکر می کنم جریانش اینجوری باشه که اگر مقدار داشته باشه یعنی فرد بدهکار است . پس می توانید با چک کردن مقدار این فیلد بفهمید که چه کسانی بدهکار هستند . یا به عبارتی در کوئری چک کنید که اگر مقدارش 0 نیست فرد بدهکار است و مشخصات را نشان بدهد.
محمد دادودنیا
سه شنبه 21 آذر 1385, 02:19 صبح
یه راه اینه
Select * ,
KindBedbed=(Case When SumBed>SumBs Then 1
When SumBes>SumBes Then 2
Else 0
End)
From Table
1 بدهکار
2 بستانکار
0 بی حساب
که دیکه نیازی به فیلد ISBed نداری
Saeid59_m
سه شنبه 21 آذر 1385, 09:51 صبح
با سلام و تشکر مجدد
یه فیلدی داشتید :
"Now_Bed مجموع بدهی شخص"
فکر می کنم جریانش اینجوری باشه که اگر مقدار داشته باشه یعنی فرد بدهکار است .
نه اینطور نیست . فرمول به دین صورت است .
کل بدهی یک شخص با دوحالت بوجود می آید
If Is_Bed=True Then Begin
X=(Now_Bed+Hesab_Aval)-Now_Bes
End Else Begin
X=Now_Bed-(Now_Bes+Hesab_Aval)
End
X جواب نهایی است .
باز هم از راهنمائی دوستان ممنونم .:خجالت:
Saeid59_m
شنبه 25 آذر 1385, 08:04 صبح
کسی جوابش رو نمی دونه .
لطفاً راهنمائی کنید .
mzjahromi
شنبه 25 آذر 1385, 10:06 صبح
یه چیزی شبیه به این
select * from (
Select Name,(case when isbed then hesabaval else -hesabaval)+NowBed-NowBes as mandeh
from tableName
) as tbl1 where Mandeh >0
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.