PDA

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