طراحی این بانک کار خودم نبوده و پروژه نصفه به من تحویل داده شده . به قول دوستم جدولم نرمال نیست . اما پروژه خیلی بزرگه و فعلا تغییرات ساختاری امکان پذیر نیست
ببینید اسم جدولم provided هست و این فیلد ها رو داره :
id : که کلید کلاس مورد نظر هست
classday : روز کلاس
classtime : ساعت کلاس
testday : روز امتحان
testtime : ساعت امتحان
این فیلد ها برای هر کلاس ذخیره میشه و کلاس هایی که دو جلسه ای هستند 2 رکورد براشون ذخیره میشه که id آنها یکسان هست که مشخص میشه یک کلاس هستند و فقط ساعت و روز کلاسش با هم فرق می کنه و فیلدهای روز و ساعت امتحان هم در هر دو رکورد یکسانه (که به قول دوست خوبم amir باید نرمال بشه و از این جدول جدا بشه) . حالا پرس و جو من به این شکل هست :
select id from provided where testday=1 and testtime=1
این پرس و جو میاد و تعداد کلاس هایی که امتحان آنها روز اول و ساعت آن هم ساعت اول هست رو پیدا می کنه و به عنوان کلاس هایی که ساعت امتحانشون تداخل داره اعلام می کنه
از اونجایی که کلاس هایی که دو جلسه ای هستند ، دو رکورد براشون ذخیره میشه که testday و testtime اونها یکی هست . اون هم به عنوان تداخل اعلام میشه . یعنی میگه این کلاس با خودش تداخل داره که اشتباهه
کاری که من کردم یک view ساختم به این شکل :
Create View tmp As Select distinct id,testday,testtime from provided
و اون select بالا رو روی این view اعمال کردم . به این شکل برای هر کلاس فقط یک نمونه رکوردش رو داریم و این مشکل حل میشه که یکمی کند و زشته
حالا راه حل شما واسه این مشکل چیه ؟ چطوری رو همون select اول بگیم که id های یکسان رو به عنوان تداخل در نظر نگیره ؟