PDA

View Full Version : سوال: جدا کردن مقادیر تکراری در کوئری



Rasool-GH
شنبه 29 شهریور 1393, 14:16 عصر
سلام دوستان
در نمونه ای که قرار دادم با اجرای کوئری 422 رکورد استخراج میشه که شامل کد پست تکراری با مقادیر مختلف هست .در صورتی که بخوایم از هر کد پست فقط یکی در نتیجه ظاهر بشه چه روشی رو پیشنهاد میکنین ؟

Ali_Fallah
شنبه 29 شهریور 1393, 20:01 عصر
نمونه!!! -

Rasool-GH
یک شنبه 30 شهریور 1393, 13:16 عصر
با عرض پوزش نمونه ضمیمه شد .
. میبخشید که سوال یک مقدار نا مفهومه .

Ali_Fallah
یک شنبه 30 شهریور 1393, 14:50 عصر
اگر برای شما فقط کدپست مهم هست و بقیه فیلدها مهم نیستند(برای نمایش)
مجددا از روی Query1 که ساختی یک کوئری جدید بساز یعنی در کوئری جدید بجای تیبل اصلی ، Query1 رو وارد کن و در قسمت وارد کردن نام فیلدها فقط فیلد کد پست رو وارد کن (codepost) در مرحله بعد ،کوئری ساخته شده رو در نمای SQL باز کن و بعد از کلمه Select کلمه DISTINCT رو بنویس . مانند زیر:

SELECT DISTINCT...
شاید فرجی حاصل شد...

Rasool-GH
یک شنبه 30 شهریور 1393, 16:18 عصر
نه همه مقادیر رو میخوام . در حالتی که 2 مقدار داشته باشیم همون Group By کار ساز هست ولی ایتمها که زیاد میشه این حالت ایجاد میشه

Ali_Fallah
یک شنبه 30 شهریور 1393, 17:30 عصر
میشه بپرسم برای چی چنین حالتی در جدول شما رخ میده ؟ ثیت رکورد تکراری فراوان !

Rasool-GH
دوشنبه 31 شهریور 1393, 19:30 عصر
این یک برنامه سرویس و نگهداری شبکه و تجهیزات برقه . این رکوردها تکراری نیستن بلکه برای هر تجهیز نتایج بازدید و اندازه گیری مختلفی ثبت شده . حالا من میخوام گزارشی بگیرم که ببینم کدوم تجهیزات با مقادیری اندازه گیری شده بزرگتر از یک حد خاص ثبت شده.

ساده تر بگم در یک برنامه فروش از یک محصول تعداد مختلفی در دفعات زیاد فروخته شده حالا میخوایم از جدول فروش یک گزارش بگیریم که کدوم محصولات سفارشات بالاتر از یک حد خاص داشتن. مثلا کدوم محصولات فروشهای بالای 10 واحد داشتن .

Abbas Amiri
دوشنبه 31 شهریور 1393, 21:28 عصر
این یک برنامه سرویس و نگهداری شبکه و تجهیزات برقه . این رکوردها تکراری نیستن بلکه برای هر تجهیز نتایج بازدید و اندازه گیری مختلفی ثبت شده . حالا من میخوام گزارشی بگیرم که ببینم کدوم تجهیزات با مقادیری اندازه گیری شده بزرگتر از یک حد خاص ثبت شده.

ساده تر بگم در یک برنامه فروش از یک محصول تعداد مختلفی در دفعات زیاد فروخته شده حالا میخوایم از جدول فروش یک گزارش بگیریم که کدوم محصولات سفارشات بالاتر از یک حد خاص داشتن. مثلا کدوم محصولات فروشهای بالای 10 واحد داشتن .

سلام

از کوئری زیر استفاده کنید:

SELECT tbl1.codepost, tbl1.R, tbl1.S, tbl1.T, tbl1.N
FROM tbl1
WHERE (((tbl1.R)>100)) OR (((tbl1.S)>100)) OR (((tbl1.T)>100))
GROUP BY tbl1.codepost, tbl1.R, tbl1.S, tbl1.T, tbl1.N
ORDER BY tbl1.codepost;

Rasool-GH
سه شنبه 01 مهر 1393, 10:16 صبح
سلام
متاسفانه باز هم همون وضعیت قبل وجود داره . البته به این نتیجه رسیدم که روش کاری که قصد انجامش رو دارم باید تغییر بدم . شما اگر پیشنهادی دارید ممنون میشم عنوان کنید .
در این نمونه جدید بررسی کنید . من انتظار دارم جوابی مانند کوئری 2 با مقادیر یکی از رکوردها بگیرم ولی در کوئری 1 که کد بالا استفاده شده هر کد پست به تعداد رکوردهایی که شرط در اونها برقراره وجود داره. من تکرارها رو نمیخوام فقط از هر کد پست یکی در نتیجه باشه کافیه .

ضمنا از دیدار مجدد شما خوشحال شدم . ممنون از کمک و راهنمایی های خوبتون

Ali_Fallah
سه شنبه 01 مهر 1393, 12:02 عصر
کوئری جدید ایجاد کن و کوئری 1 رو اضافه کن
به غیر از Codepost بقیه فیلدها رو Max قرار بده!

Rasool-GH
سه شنبه 01 مهر 1393, 12:28 عصر
سلام ممنون . کاملا صحیح و دقیقا خواسته بنده براورده شد . خیلی ممنون
در مورد عملکرد Where توضیح مختصری بدین ممنون میشم

m.elmi
پنج شنبه 03 مهر 1393, 18:08 عصر
WHERE قبل از اينكه گروه بندي انجام بشه ديتاي اوليه رو فيلتر مي كنه.