NasimBamdad
یک شنبه 14 آبان 1391, 16:13 عصر
سلام و خسته نباشید .
یک کوری دارم که یک مشکل کوچولو داره که دست به دامن سایت برنامه نویس شدم .
اول ایـــــن عکـــــس (http://www.pcmupload.com/di-T6V7.gif) رو ببینید و توضیح کوچیکی در مورد جداول من
جدول Patients : جدول بیماران که حاوی مشخصات فردی بیمار و وضعیت بیمه و نوع بیمه و ... می باشید .
ستون ID : شماره پرونده بیمار که در کل DataBase منحصر به فرد می باشد و برای اتصال بقیه جداول از این فیلد استفاده می کنم .
ستون bime_status : این ستون وضعیت بیمه فرد است که از اگر مثلا 1 باشه یعنی آزاد ، اگر 2 باشه یعنی تامین اجتماعی ( از جدول bime_type ) این وضعیت خوانده می شود
جدول other_usage : در این جدول برای هر بیمار ممکن است بیشتر از 1 رکورد داشته باشیم .
اگر برای بیمار نوار قلب - ویزیت پزشک - دستگاه فیکو - دستگاه میکروسکپ و .. استفاده شود در این جدول یک رکورد برایش قرار داده می شود که از جدول Other_Type کمک می گیریم .
در تصویر میشود مشاهده کرد که با INNER Join که برای Other_Usage و Other_Type کردیم و همچنین برای Bime_Type و Patients کردیم می شود در خروجی نشان داد که نوع خدمت استفاده شده ( در جدول other_usage ) و نوع بیمه فرد چی هست .
فرض کنید ما در جدول Patients که حاوی بیماران هست 200 مریض را پذیرش کردیم و هر کدام یک شماره پرونده منحصر به فرد دارند .
ممکن است برای این افراد خدماتی ارائه نشده باشد و در نتیجه رکوردی ( نظیر نوار قلب و ویزیت و ... ) در جدول Other_Usage نخواهند داشت .
کاری که من کردم یک OUTER JOIN بین جدول بیماران یا Patients و جدول Other_Usage می باشد که برای ما تمامی بیماران را ( همون 200 عدد ) رو لیست می کند .
اما من نیاز دارم فقط بیمارانی که نوار قلب برای آنها استفاده شده ( یعنی other_id = 3 ) لیست شوند .
WHERE dbo.other_usage.other_id = 3
اشکال کد بالا این هست که در صورتی که بیمار خدمتی برایش ارائه نشده باشد و در جدول other_usage با وجود outer Join شدن ، رکوردی نداشته باشد ، اصلا نمایش داده نمی شود
پس اگر برای فرد نوار قلب استفاده شده بود در خروجی نشان دهد ، اگر هم نوار قلب استفاده نشده بود باز هم در خروجی نشان دهد ، اما مقدار 0 برای هزینه اون نشان داده شود . در عکس یک ستون به اسم Navar_cost_tamin می باشد . در این قسمت می خواهم اگر بیمار در جدول other_usage نداشت مقدار 0 نشان داده شود .
خیلی پیچیده است و سر در گم ، ببخشید اگه جاییش گنگ بود بهم بگید تا توضیح بیشتر بدم .
یک کوری دارم که یک مشکل کوچولو داره که دست به دامن سایت برنامه نویس شدم .
اول ایـــــن عکـــــس (http://www.pcmupload.com/di-T6V7.gif) رو ببینید و توضیح کوچیکی در مورد جداول من
جدول Patients : جدول بیماران که حاوی مشخصات فردی بیمار و وضعیت بیمه و نوع بیمه و ... می باشید .
ستون ID : شماره پرونده بیمار که در کل DataBase منحصر به فرد می باشد و برای اتصال بقیه جداول از این فیلد استفاده می کنم .
ستون bime_status : این ستون وضعیت بیمه فرد است که از اگر مثلا 1 باشه یعنی آزاد ، اگر 2 باشه یعنی تامین اجتماعی ( از جدول bime_type ) این وضعیت خوانده می شود
جدول other_usage : در این جدول برای هر بیمار ممکن است بیشتر از 1 رکورد داشته باشیم .
اگر برای بیمار نوار قلب - ویزیت پزشک - دستگاه فیکو - دستگاه میکروسکپ و .. استفاده شود در این جدول یک رکورد برایش قرار داده می شود که از جدول Other_Type کمک می گیریم .
در تصویر میشود مشاهده کرد که با INNER Join که برای Other_Usage و Other_Type کردیم و همچنین برای Bime_Type و Patients کردیم می شود در خروجی نشان داد که نوع خدمت استفاده شده ( در جدول other_usage ) و نوع بیمه فرد چی هست .
فرض کنید ما در جدول Patients که حاوی بیماران هست 200 مریض را پذیرش کردیم و هر کدام یک شماره پرونده منحصر به فرد دارند .
ممکن است برای این افراد خدماتی ارائه نشده باشد و در نتیجه رکوردی ( نظیر نوار قلب و ویزیت و ... ) در جدول Other_Usage نخواهند داشت .
کاری که من کردم یک OUTER JOIN بین جدول بیماران یا Patients و جدول Other_Usage می باشد که برای ما تمامی بیماران را ( همون 200 عدد ) رو لیست می کند .
اما من نیاز دارم فقط بیمارانی که نوار قلب برای آنها استفاده شده ( یعنی other_id = 3 ) لیست شوند .
WHERE dbo.other_usage.other_id = 3
اشکال کد بالا این هست که در صورتی که بیمار خدمتی برایش ارائه نشده باشد و در جدول other_usage با وجود outer Join شدن ، رکوردی نداشته باشد ، اصلا نمایش داده نمی شود
پس اگر برای فرد نوار قلب استفاده شده بود در خروجی نشان دهد ، اگر هم نوار قلب استفاده نشده بود باز هم در خروجی نشان دهد ، اما مقدار 0 برای هزینه اون نشان داده شود . در عکس یک ستون به اسم Navar_cost_tamin می باشد . در این قسمت می خواهم اگر بیمار در جدول other_usage نداشت مقدار 0 نشان داده شود .
خیلی پیچیده است و سر در گم ، ببخشید اگه جاییش گنگ بود بهم بگید تا توضیح بیشتر بدم .