PDA

View Full Version : بدست اوردن رکوردهایی که یک فیلدش با یکی ازچند متغییر برابر باشه



neynavaz
چهارشنبه 12 بهمن 1390, 15:21 عصر
سلام
من یک ویو دارم که توش اطلاعاتی هست
دو فیلد گیرنده و جایگزین گیرنده در واقع لوکیشن کد کاربر هستند

حالا کاربر وارد فرمی شده که باید سطرهایی از این ویو رو ببینه که لوکیشن کد خودش با گیرنده یا جایگزینش برابر باشه
این امکان هم هست که این کاربر داره چند لوکیشن کد باشه
راه حلی که به ذهن خودم رسیده اینه که لوکیشن کد های کاربر رو بگیرم
و همه سطرهای این ویو رو تو سمت دات نت مرور کنم هرکدوم برابر بود رو به دیتا تیبلم اضافه کنم و نشون بدم
ولی اینکار خیلی خیلی کند میکنه سیستم رو
البته در اینده

میخواستم بدونم کسی راه حل اس کیو الی با سبک تر نداره

پس خلاصه مشکل من میشه این

rec_loc (کد لوکیشن گیرنده که در ویو یک ستون است)
oth_loc (که کد لوکیشن جایگزین هست)

و یک مجموعه (که میتونه 1 یا ان تا عضو داشته باشه) از لوکیشن کد های کاربر جاری


ممنون میشم کمکم کنید

neynavaz
شنبه 15 بهمن 1390, 07:39 صبح
دوستان کسی کمک نمیکنه؟

ASKaffash
شنبه 15 بهمن 1390, 07:54 صبح
سلام
توضیحات کمی گیج کننده است ولی فکر کنم شبیه این کد :


Declare @rec_loc Bigint=100,@oth_loc Bigint=200
Select * From T Where loc In(@rec_loc,@oth_loc)

neynavaz
شنبه 15 بهمن 1390, 08:34 صبح
سلام
توضیحات کمی گیج کننده است ولی فکر کنم شبیه این کد :


Declare @rec_loc Bigint=100,@oth_loc Bigint=200
Select*From T Where loc In(@rec_loc,@oth_loc)



سلام ممنون که جواب دادی دوست عزیز
ولی مشکل اینجاست که لوکیشن گیرنده یا جایگزین اون تو خود ویو هست و لوکیشن ای دی بیننده ممکن یک یا چندتا باشه
ساده اش میشه این
select * from vmsgs where rec_loc =locid or oth_loc = loc id

فقط این دستور موقعی جواب میده که کاربر یک موقعیت سازمانی یا لوکیشن ای دی داشته باشه
ولی وقتی یه کاربر 3 تا پست سازمانی داره چطور رکوردهاشو پیدا کنم؟!
((امان از این چند شغله ها!!!:بامزه:))

baktash.n81@gmail.com
شنبه 15 بهمن 1390, 09:02 صبح
سلام

احتمالا یه جدول داری که افراد رو به سمت ها مربوط می کنه ... تو همین دستوری که خودت نوشتی به جای مساوی از In استفاده کن و به جای locid یه Query بنویس که تمام LocId های یه کاربر را برگردونه ...


select * from vmsgs where rec_loc in (Select locid from TableName Where UserID=@UserID) or oth_loc in (Select locid from TableName Where UserID=@UserID)

neynavaz
شنبه 15 بهمن 1390, 13:31 عصر
خیلی لطف کردید دوستان..ممنونم