ورود

View Full Version : نمایش رکورد به شرط مقدار یک فیلد



Julias99
شنبه 08 شهریور 1393, 12:09 عصر
تو این کوئری زیر من چه طوری می تونم بگم که اگه مقدار رکورد Resualt برابر بود با 'قرارداد' فیلد مبلغ و بیعانه رو از جدول دیگه جوین بززنه و نمایش بده د اگه مقدار فیلد resualt هر چیزی جز این بود فیلد مبلغ و بیعانه خالی نمایش داده بشه یا صهر نمایش داده بشه

SELECT Event_TB.service_id, Event_TB.id, Customer_TB.ID AS CustomerID, Customer_TB.Name + ' ' + Customer_TB.Family AS Customer,
Personel_TB.name + ' ' + Personel_TB.family AS Modir_Gharardad, Personel_TB_1.name + ' ' + Personel_TB_1.family AS Moshaver, Service_TB.servicename,
Event_TB.totime, Event_TB.address, Event_TB.resualt, Event_TB.todate, Event_TB.Resualt_Modir,
Event_TB.Comment
FROM Service_TB INNER JOIN
Personel_TB INNER JOIN
Event_TB INNER JOIN
Customer_TB ON Event_TB.customer_id = Customer_TB.ID ON Personel_TB.id = Event_TB.Modir_Gharardad ON Service_TB.id = Event_TB.service_id INNER JOIN
Personel_TB AS Personel_TB_1 ON Customer_TB.Username = Personel_TB_1.username
WHERE (Event_TB.resualt = N'منجر به آدرس' OR
Event_TB.resualt = N'قرارداد') AND (Event_TB.todate = '1393/06/04')

چون وقتی با INNER JOIN کار می کنم و چون مقادیر به غیر از قرارداد تو جدول مالی موجود نیست فقط قرارداد ها رو نشون میده
توروخدا یکی بیاد کمک کنه
من خیلی لنگم

mohammad reza beizavi
سه شنبه 18 شهریور 1393, 23:11 عصر
درود
از left join استفاده کن
مثلا اگر جدول مشخصات Table1 و جدول قرارداد Table2 باشه و فیلد result هم از جدول Table2 باشه به این ترتیب میشه:

select Table1.feild1, Table1.feild2 , ISNULL(Table2.result,0)
from Table1
LEFT JOIN Table2 On Table1.xid = Tables2.yid;

اگر بازم مشکلی بود، دیتابیس رو با داده تستی بزار تا دقیقا ;کوئری رو چک کنم