PDA

View Full Version : بررسی سیستم تداخل رزرو



project80888
جمعه 04 مهر 1393, 11:39 صبح
سلام جهت سیستم رزرو نیاز به یه تکیه کدی دارم که تداخل چک کنه فرضا کلاس A در تاریخ 1393/07/09 تا تاریخ 1393/07/21 از ساعت 08 صبح تا 12 رزرو شده است فرضا کلاس A در تاریخ 1393/07/09 تا تاریخ 1393/07/21 از ساعت 14 صبح تا 16 رزرو شده است در بدست آوردن تداخل ساعت توی یک روز هم در نظر بگیره مثلا در رزرو بالا هیچ گونه تداخلی برای کلاس A وجود ندارد ممنون میشم در این مورد نمونه کد و یا راهنمائی شود و فرض شود بخواهیم تاریخ های زیر را بررسی کند
فرضا کلاس A در تاریخ 1393/07/12 تا تاریخ 1393/07/15 از ساعت 11 صبح تا 17 می تواند رزرو شود ؟؟ فرضا کلاس A در تاریخ 1393/07/25 تا تاریخ 1393/08/05 از ساعت 08 صبح تا 14 می تواند رزرو شود ؟؟ و..... |--- Date 1 ---| | --- Date 2 --- | | --- Date 1 --- | | --- Date 2 ---- | | -------- Date 1 -------- | | --- Date 2 --- | | --- Date 1 --- | | -------- Date 2 -------- |

parvizwpf
جمعه 04 مهر 1393, 11:49 صبح
ظاهرا باید کلاس، تاربخ ار، تاربخ تا و زمان از و زمان تا رو یررسی کنی که تکراری نباشند. خب مشکل شما تو نوشتن کوئریه؟

project80888
جمعه 04 مهر 1393, 11:55 صبح
ببنید من فرضا توی یه سال رزروهای مختلفی انجام دادم
حالا کاربر میخواد یه رزرو جدید انجام بده که میخوام کلاسی بنویسم که بیاد این تداخل بررسی کنه
راه حل بدید ممنون میشم
توی نوشتم کد مشکلی ندارم فقط دنبال راه حل هستم

parvizwpf
جمعه 04 مهر 1393, 12:07 عصر
راه حل رو که خودتون هم نوشتید باید بالاخره چند فیلد رو یکچا ببینید که یکی نباشند. راه حل خاصی فکر نکنم نیاز باشه.

project80888
جمعه 04 مهر 1393, 12:18 عصر
ممنون از جواب کامل شما !!!!
بیخیال

parvizwpf
جمعه 04 مهر 1393, 15:07 عصر
شما گفتید من تو کدنویسیش موردی ندارم. راه کار هم که گفتم شما احتمالا نیاز دارید در لحظه رزرو، چند تا چیزو همزمان در یک شرط بررسی کنید که تکراری نباشه. یعنی همون فیلدهایی که بالا بهش اشاره کردید اگه قبلا با این ترکیب چیزی ثبته خوب میشه اون چیزی که شما نیاز دارید. غیر اینه؟.حالا من دیگه نمیدونم چه چیزی رو کم گفتم امیدوارم تونسته باشم منظور رو برسونم. اگه هنوز به جواب نرسیدید بگید مشکل چیه. همین.

samanelf
جمعه 04 مهر 1393, 19:48 عصر
سلام اینکه راحته شما باید اطلاعات رو روی یک datatable قرار بدین و اطلاعات ستون ها رو با هم مقایسه مثلا می خواین تاریخ رو مقایسه کنین یا روز با یه دستور ساده میشه مقایسه کرد راه دیگه فک نکنم باشه

project80888
جمعه 04 مهر 1393, 21:06 عصر
Declare @StartDate datetime;
Declare @EndDate datetime;


set @StartDate='2014-09-26 16:00:00.000'
set @EndDate='2014-09-29 23:00:00.000'


SELECT Res_ID, Res_LocID_FK,Res_SDate , Res_EndDate, Res_Note, Res_StateID
FROM ReserveDb.dbo.tbl_Reserve
where



ممنون میشم قسمت شرطشو کامل کنید

project80888
جمعه 04 مهر 1393, 22:09 عصر
set @StartDate='2014-09-26 16:00:00.000'
set @EndDate= '2014-10-29 23:00:00.000'
declare @T table (Res_LocID_FK int , StartDate datetime, EndDate datetime)
insert into @T select 1,@StartDate,@EndDate

select T2.Res_ID , T2.Res_SDate, T2.Res_EndDate, T2.Res_LocID_FK
from @T as T1
inner join tbl_Reserve as T2
on T1.StartDate < T2.Res_EndDate and
T1.EndDate > T2.Res_SDate
and
T1.Res_LocID_FK = T2.Res_LocID_FK

project80888
جمعه 04 مهر 1393, 22:10 عصر
دوستان من شرط بالا را نوشتم ولی ساعت چک نمیکنه

اینم یه نمونه خروجی

Res_SDate Res_EndDate
2014-09-26 08:00:00.000 2014-09-28 12:00:00.000
2014-09-26 08:00:00.000 2014-10-01 13:00:00.000
2014-10-14 10:00:00.000 2014-10-15 14:00:00.000
2014-10-10 09:00:00.000 2014-10-15 17:00:00.000
2014-10-20 09:00:00.000 2014-10-24 14:00:00.000
2014-09-26 08:00:00.000 2014-11-26 15:00:00.000
2014-09-26 14:00:00.000 2014-11-30 19:00:00.000
2014-10-01 15:00:00.000 2014-12-15 16:00:00.000
2014-09-26 15:00:00.000 2014-12-26 19:00:00.000

project80888
شنبه 05 مهر 1393, 08:50 صبح
جان؟؟؟؟؟
مدیر جان من توضیح دادم شما نخوندید
برنامه رزرو ؟؟؟؟
کلاس ؟؟؟
مشخصه متغیر یکی میاد یک روز رزرو میکنه یکی میاد یک سال یکی میاد 8 تا 1 رزرو میکنه یکی میاد 2 تا 4
در کل عنوان به نام ثابت نداریم

project80888
جمعه 11 مهر 1393, 20:23 عصر
گسی نبود ؟؟؟