1 ضمیمه
دریافت خروجی با توجه به تصویر پیوستی
سلام دوستان وقت بخیر.
من یه جدول دارم به اسم ایلاغ ها با فیلدهای (شماره ابلاغ-شماره پرونده-تاریخ ابلاغ) که شماره ابلاغ به عنوان کلید اصلی این جدول هست و تکراری ثبت نمیشه
یه جدول دیگه هم دارم به اسم بازرسی با فیلد های (شماره بازرسی-شماره پرونده- شماره ابلاغ-تاریخ بازرسی) که شماره بازرسی به عنوان فیلد اصلی هست.
تو جدول بازرسی کاربر میتونه شماره ابلاغ رو ثبت کنه یا نکنه که اختیاریه و کلا ممکنه بعضی از بازرسی ها شماره ابلاغ نداشته باشن.
حالا من میخوام یه خروجی از این دوتا جدول بگیرم که شامل (شماره ابلاغ- شماره پرونده- شماره بازرسی- تاریخ ابلاغ) باشه که کل ابلاغ ها حتما نمایش داده بشه ولی اگه رکوردی با اون شماره ابلاغ هم تو جدول بازرسی نبود شماره بازرسی خالی بیاد.
شبیه تصویر زیر:
ضمیمه 151343
ممنون میشم راهنماییم کنید.
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
جدول ابلاغ را با جدول بازرسی left join کنید. (اگر ترتیب جداول را عوض کنید بایست از right join استفاده کنید.)
https://www.sqlservertutorial.net/sq...rver-left-join
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
مشکل اینکه اون شماره ابلاغ تو جدول بازرسی کلید خارجی نیست. یه فیلد اختیاریه و با توجه به اینکه کاربر میتونه موارد غیر شماره ابلاغ هم تو اون ثبت کنه مثلا یه عدد خاص وقتی جوین میشه خطا میده
متن خطا هم به این صورته:
Conversion failed when converting the nvarchar value '788 و 744' to data type int
که کاربر یه عددی وارد کرده که خب قابل تبدیل نیست.برا همین فک نکنم جوین ها جواب بده.
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
در جدول بازرسی اگر شماره ابلاغ فقط کاراکترهای عددی می پذیره نوعش رو تغییر بدید اگر نه که هیچ.
در join هر دو شماره ابلاغ باید نوعشون یکسان باشه تا بشه مقایسه کرد. میتونید convert کنید.
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
در جدول بازرسی اگر شماره ابلاغ فقط کاراکترهای عددی می پذیره نوعش رو تغییر بدید اگر نه که هیچ.
در join هر دو شماره ابلاغ باید نوعشون یکسان باشه تا بشه مقایسه کنید. میتونید convert کنید.
خب تو جدول بازرسی امکان تبدیل نوعش وجود نداره و چون فیلد اختیاری به صورت رشته هست و کاربر میتونه خالی یا ترکیبی از دو ابلاغ رو بنویسه.
غیر از جوین ها راه حل دیگه ای نیست ؟ با این حساب باید برم سمت برنامه و تفکیک کنم
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
نقل قول:
نوشته شده توسط
رامین مرادی
خب تو جدول بازرسی امکان تبدیل نوعش وجود نداره و چون فیلد اختیاری به صورت رشته هست و کاربر میتونه خالی یا ترکیبی از دو ابلاغ رو بنویسه.
غیر از جوین ها راه حل دیگه ای نیست ؟ با این حساب باید برم سمت برنامه و تفکیک کنم
ترکیبی از دو ابلاغ یعنی دو شماره در یک فیلد؟
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
نقل قول:
نوشته شده توسط
Mahmoud.Afrad
ترکیبی از دو ابلاغ یعنی دو شماره در یک فیلد؟
بله این مورد هم امکان داره. کلا اون فیلد ابلاغ چیزی شبیه به فیلد توضیحات هست که کاربر میتونه بجای شماره ابلاغ یه متن کوچیک یا هرچیزی وارد کنه.
کلا نمیشه کاری کرد که قبل جوین نوع فیلد رو تبدیل کرد به مثلا عدد و تو رکورد هایی که رشته هست یا خالی هست خطا نگیره و ردشون کنه؟
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
نقل قول:
نوشته شده توسط
رامین مرادی
بله این مورد هم امکان داره. کلا اون فیلد ابلاغ چیزی شبیه به فیلد توضیحات هست که کاربر میتونه بجای شماره ابلاغ یه متن کوچیک یا هرچیزی وارد کنه.
کلا نمیشه کاری کرد که قبل جوین نوع فیلد رو تبدیل کرد به مثلا عدد و تو رکورد هایی که رشته هست یا خالی هست خطا نگیره و ردشون کنه؟
برعکس کار کن، یعنی فیلد عدد رو به رشته تبدیل و مقایسه کن. ولی خب باید تمام حالات ممکن رو در نظر بگیری.
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
cast numeric اون فيلد رو بگيريد ولي بايد مطمئن باشيد به غير از عدد در اون فيلد چيزي درج نشده باشه و گرنه خطا دريافت ميكني
نقل قول: دریافت خروجی با توجه به تصویر پیوستی
نقل قول:
نوشته شده توسط
H.Jafari
cast numeric اون فيلد رو بگيريد ولي بايد مطمئن باشيد به غير از عدد در اون فيلد چيزي درج نشده باشه و گرنه خطا دريافت ميكني
مشکل همینه دیگه.ممکنه چیزی غیر عدد درج بشه یا شبیه این (1235-5623)درج بشه عددها:افسرده: