ورود

View Full Version : کمک جهت اخذ یک کوئری از یک جدول لاگ



ashena29
سه شنبه 25 بهمن 1384, 13:52 عصر
با عرض سلام خدمت تمامی دوستان و همکاران این گروه
بنده عضو جدید این تاپیک هستم و چند روزی است باتهیه یک کوئری مشکل دارم چناچه دوستان در این رابطه می توانند کمکی نمایند ممنون می شوم
شرح مسئله را با مثال توضیح می دهم:
جدول لاگی وجوددارد چنانجه فیلدی از رکوردها تغییر نماید رکورد قبلی با مشخصهoldو رکورد جدید با مشخصه new در آن نگهداری می شود
حال با توجه به اینکه تعداد فیلدهای جدول زیاد است می خواهم کوئری بزنم که فقط فیلدی که تغییر کرده آورده شود و سایر فیلدها خالی نمایش داده شود .به عبارت دیگر اگر فیلد تغییری نداشت مقدار خالی برگرداند و فقط فیلدهای تغییر یافته در کوئری نمایش داده شوند

با تشکر از همفکری و تلاش دوستان

mzjahromi
سه شنبه 25 بهمن 1384, 14:08 عصر
البته شما مشخصات و نام فیلدها رو ننوشتی ولی یه چیزی شبیه به این کد باید کارت رو راه بیندازه


select * From TableName Where Type='new'
and RecordID in(Select RecordID From TableName Where type='Old')

ashena29
سه شنبه 25 بهمن 1384, 14:26 عصر
دوست عزیز ممنون از زحمتی که کشیدی و پاسخ دادی ولی با این کد فیلدهایی که تغییری نداشته اند نیز تکرار می گردند در صورتی که هدف از کوئری این است که فیلدهایی که تغییر نداشته اند خالی نمایش داده شوند و کاربر با یک نگاه کلی متوجه تغییرات در رکورد ها بشود
باز هم از شما تشکر می کنم و دوستان دیگر را به این بحث دعوت می کنم
جهت توضیح بیشتر این مسئله دو تصویر به این تاپیک اضافه می کنم که دوستان در صورتی که می توانند راهنمایی نمایند
هدف رسیدن از جدول تصویر 1 می باشد به جدول تصویر شماره 2
همانطور که در شکل ملاحظه می گردد کد رهگیری در رکوردهایی که تغییری نداشته است خالی نمایش داده می شود و فقط آن فیلدهایی که تغییر نموده اند در جدول مقصد (شکل 2 ) نمایش داده می شوند
از دوستان عزیز خصوصا جناب آقای ثباتی انتظار راهنمایی دارم

mzjahromi
سه شنبه 25 بهمن 1384, 14:32 عصر
با این کد رکوردهئی که مشخصه آنها New هست و یک رکورد متناظر با مشخصه Old هم وجود دارد نمایش داده میشود. اگر این کد مشکل شما را حل نمی کند در مورد سوالتان بیشتر توضیح دهید

AminSobati
چهارشنبه 26 بهمن 1384, 22:49 عصر
دوست عزیزم،
چقدر خوب بود شما دو جدول مجزا برای ثبت اطلاعات قبل و بعد از تغییر می ساختین. به این شکل یک ارتباط One-To-One وجود داشت که برای انواع Query مناسب بود.
در ضمن آیا در همین ساختار فعلی شما فیلدی ندارید که مشخص کنه کدوم رکورد ویرایش شده؟

ali_abbasi22145
پنج شنبه 27 بهمن 1384, 09:01 صبح
سلام
من مشکلی شبیه به شما داشتم و یک فیلد در بانک اضافه کردم به نام modified و هربار فیلدی از رکورد ویرایش می شد تاریخ و ساعت ویرایش ان رکورد را از سیستم می گیرم و اینطور انهایی که ویرایش شده ان معلوم می شود و خیلی کارها با ان می شود کرد.