ورود

View Full Version : سوال: یافتن رکوردهایی که مقدار یک فیلد آن تکراری است (با یک شرط اضافی !)



soroush_k12
پنج شنبه 02 آبان 1392, 10:33 صبح
با سلام
در نمونه پیوست از کوری Find duplicates برای یافتن رکوردهایی از جدول T1 که مقدار فیلد مصرف آن تکراری است استفاده شده. ولی یک شرط دیگر نیز باید در کوری اعمال شود : رکوردهایی باید در نتیجه کوری ظاهر شوند که مقدار فیلد نام آنها یکی باشد مثلا رکوردهایی که فیلد مصرف آنها 15 است نباید در نتیجه کوری باشد چون مقدار فیلد نام آنها یکی نیست.
نتیجه مورد نظر من در جدول what i want آمده است.امیدوارم بخوبی منظورم را رسانده باشم.
لطفا کوری را در صورت امکان اصلاح نمایید . با تشکر

Abbas Amiri
پنج شنبه 02 آبان 1392, 13:52 عصر
با سلام
در نمونه پیوست از کوری Find duplicates برای یافتن رکوردهایی از جدول T1 که مقدار فیلد مصرف آن تکراری است استفاده شده. ولی یک شرط دیگر نیز باید در کوری اعمال شود : رکوردهایی باید در نتیجه کوری ظاهر شوند که مقدار فیلد نام آنها یکی باشد مثلا رکوردهایی که فیلد مصرف آنها 15 است نباید در نتیجه کوری باشد چون مقدار فیلد نام آنها یکی نیست.
نتیجه مورد نظر من در جدول what i want آمده است.امیدوارم بخوبی منظورم را رسانده باشم.
لطفا کوری را در صورت امکان اصلاح نمایید . با تشکر

عبارت SQL زیر را جایگزین کنید:
SELECT T1.مصرف, T1.نام, T1.دوره
FROM T1
WHERE (((T1.مصرف) In (SELECT [مصرف] FROM [T1] As Tmp WHERE [مصرف] <> '15' GROUP BY [مصرف] HAVING Count(*)>1 )))
ORDER BY T1.مصرف;


استفاده از اسامی با حروف فارسی ترتیب حروف را در کد نویسی جابجا می کند .

soroush_k12
پنج شنبه 02 آبان 1392, 23:19 عصر
عبارت SQL زیر را جایگزین کنید:
SELECT T1.مصرف, T1.نام, T1.دوره
FROM T1
WHERE (((T1.مصرف) In (SELECT [مصرف] FROM [T1] As Tmp WHERE [مصرف] <> '15' GROUP BY [مصرف] HAVING Count(*)>1 )))
ORDER BY T1.مصرف;


استفاده از اسامی با حروف فارسی ترتیب حروف را در کد نویسی جابجا می کند .

با سلام و تشکر جناب Abbas Amiri
از توجه شما ممنونم ولی منظورم از 15 فقط یک مثال بود .من میخواهم در حالت کلی موارد تکراری فیلد مصرف در صورتی که فیلد نام آنها یکی است پیدا شوند .یعنی برای علی 3 رکوردی که مصرف انها 24 است و برای رضا 2 رکورد که مصرف انها 19 است پیدا شود (یعنی مجموعا 5 رکورد لیست شوند) و دو رکورد مصرف 15 که نام یکی از انها علی و دیگری محمد است ، لیست نشود.
یعنی این عمل تکراری پیدا کردن بین رکوردهای هر اسم انجام شود نه این که بین دو یا چند اسم مختلف موارد تکراری فیلد مصرف پیدا شود.
ایا شدنی است؟؟؟
باز هم ممنونم

soroush_k12
یک شنبه 05 آبان 1392, 16:36 عصر
دوستان گرامی راهی وجود ندارد؟؟؟

soroush_k12
سه شنبه 07 آبان 1392, 12:58 عصر
فکر نمیکردم این سوال اینقدر مشکل باشه.اساتید لطفا یه لطفی بنمایند

alirezabahrami
سه شنبه 07 آبان 1392, 20:31 عصر
با سلام
در نمونه پیوست از کوری Find duplicates برای یافتن رکوردهایی از جدول T1 که مقدار فیلد مصرف آن تکراری است استفاده شده. ولی یک شرط دیگر نیز باید در کوری اعمال شود : رکوردهایی باید در نتیجه کوری ظاهر شوند که مقدار فیلد نام آنها یکی باشد مثلا رکوردهایی که فیلد مصرف آنها 15 است نباید در نتیجه کوری باشد چون مقدار فیلد نام آنها یکی نیست.
نتیجه مورد نظر من در جدول what i want آمده است.امیدوارم بخوبی منظورم را رسانده باشم.
لطفا کوری را در صورت امکان اصلاح نمایید . با تشکر

دوستان گرامی راهی وجود ندارد؟؟؟

فکر نمیکردم این سوال اینقدر مشکل باشه.اساتید لطفا یه لطفی بنمایند
سلام آقا سروش!
نه تنها این سوال مشکل نیست بلکه بیشتر سوالاتی هم که از طرف دوستان مطرح میشود مشکل نیستند و براحتی میتوان جواب آنها را داد ؛ و دلایل زیادی برای پاسخ ندادن وجود دارد از جمله اینکه دوستانی که قادر به جواب دادن هستند هنوز وارد تالار نشده اند و تاپیک های جدید را هنوز ملاحظه ننموده اند یا عدم تمایل و بی انگیزگی در جواب دادن ( عمده موردی که باعث بی انگیزگی دوستان (منظورم دوستان حرفه ای است )درجواب دادن به سوالات میشود عدم مشارکت و بی اعتنائی اعضاء بزرگوار در تاپیک های ایجاد شده از طرف دیگران می باشد) و غیره .
علی ایحال در نمونه شما شرط مربوطه در قسمت Criteria کوئری باید برای هر دو فیلد نام و مصرف بکار رود.
ضمناً سعی کن از نام لاتین برای نام گذاری فیلدها استفاده کنید.
نمونه اصلاح شده را ببین!

soroush_k12
سه شنبه 07 آبان 1392, 22:56 عصر
با سلام و عرض ارادت خدمت آقای علیرضا بهرامی
بنده به هیچ وجه منظورم از مشکل بودن سوال ، جسارت به اساتید بزرگوار این تالار نبود. پر واضح است که مشکلات و سوالات بسیار پیچیده تر در همین تالار با همت همین عزیزان به نتیجه مطلوب رسیده است. بنده فقط میخواستم کمی توجه عزیزان به این سوال جلب شود . باز هم اگر جسارتی از جانب من شده پوزش میخواهم.
اما در مورد جواب شما. متاسفانه مشکل کماکان باقی است.
برای مثال در نمونه شما در رکورد سوم مقدار مصرف را به 300 تغییر دادم. در نتیجه کوری 2 رکورد اضافه میشود که مصرف انها 300 است و اسم یکی علی و دیگری رضا است ! (که نباید اضافه شود چون نام انها متفاوت است.یعنی من نمیخواهم رکوردهایی که مصرف یکسان ولی نام متفاوت دارند لیست شود .فقط رکوردهایی باید لیست شوند که مصرف یکسان دارند به شرطی که نامشان هم یکی باشد)
تغییرات مربوط به نامهای انگلیسی را هم اعمال کردم.
بازهم ممنونم

alirezabahrami
چهارشنبه 08 آبان 1392, 10:41 صبح
با سلام و عرض ارادت خدمت آقای علیرضا بهرامی

اما در مورد جواب شما. متاسفانه مشکل کماکان باقی است.
برای مثال در نمونه شما در رکورد سوم مقدار مصرف را به 300 تغییر دادم. در نتیجه کوری 2 رکورد اضافه میشود که مصرف انها 300 است و اسم یکی علی و دیگری رضا است ! (که نباید اضافه شود چون نام انها متفاوت است.یعنی من نمیخواهم رکوردهایی که مصرف یکسان ولی نام متفاوت دارند لیست شود .فقط رکوردهایی باید لیست شوند که مصرف یکسان دارند به شرطی که نامشان هم یکی باشد)
تغییرات مربوط به نامهای انگلیسی را هم اعمال کردم.
بازهم ممنونم
سلام
در نمونه جديد كوئري Find duplicates for T1 را بررسي كن !
يا علي

soroush_k12
چهارشنبه 08 آبان 1392, 13:49 عصر
با سلام خدمت آقای علیرضا بهرامی عزیز
دقیقا همین را میخواستم.از تکنیک بسیار جالبی هم استفاده کرده بودید. از توجه شما بسیار ممنونم