View Full Version : سوال: راهنمایی برای شمارش رکوردها بر اساس یک فیلد
saeed28541
یک شنبه 11 بهمن 1394, 23:11 عصر
سلام.
جدولی دارم که یکی از فیلدهاش شماره همراه هست.
میخوام تعداد رکوردهای این جدول که شماره های همراهشون یکسان هست شمارش بشه.؟
هیچ ذهنیتی برای این کار ندارم اگر اساتید راهنمایی کنن ممنون میشم.
تشکر
majidosmani
دوشنبه 12 بهمن 1394, 08:26 صبح
سلام چرا از کوئری و دستور group by استفاده نمی کنی؟
saeed28541
دوشنبه 12 بهمن 1394, 15:22 عصر
سلام مجدد.
یه نمونه گذاشتم تا سوالم مشخص بشه.
در فرم گزارش خودم یه کارهایی انجام دادم اشکالش اینکه باید روی تک تک رکوردها کلیک بشه تا تعداد شماره هاش رادر جدول cellنشون بده.
حالا شما روش بهتری دارید منتظر راهنماییتون هستم.؟
e601
دوشنبه 12 بهمن 1394, 16:37 عصر
سلام
به نظر من بهترین روش استفاده از دستورات inner join هست که دقیقا برای همین کارها طراحی شده.
شما باید اصلاحات زیر رو در برنامه تون اعمال کنید (با عرض پوزش من به هیچ وجه با آپلود کردن پاسخ موافق نیستم و چون اینجا یک سایت آموزشی هست ترجیح میدم توضیحات رو بنویسم تا هر موقع کسی بعدا به این تاپیک مراجعه کرد با خواندن مطالب مشکلش حل بشه و نیازی به دانلود نباشه) :
1. کد موجود در گزارش رو حذف کنید چون نیازی بهش ندارید.
2. کد sql زیر رو بعنوان record source گزارشتون قرار بدید :
SELECT name.name, cell.shomare, Count(cell.shomare) AS CountOfshomare
FROM cell
RIGHT JOIN name ON cell.shomare = name.cell
GROUP BY name.name, cell.shomare
HAVING (Count(cell.shomare));
3. با قرار دادن کد بالا یک فیلد به گزارش شما اضافه میشه بنام CountOfshomare که باید به تکست باکس تعداد شماره ها متصلش کنید. یعنی control source تکست باکس تعداد شماره ها رو برابر این فیلد بذارید. (شما میتونید بجای عبارت CountOfshomare هر نام دیگه ای بصورت لاتین یا فینگلیش در دستورات sql قرار بدید. البته زیاد مهم نیست چون یک نام انتخابی برای فیلد جدید شما هست)
4. فیلد cell رو در گزارشتون حذف کنید چون نیازی بهش ندارید.
saeed28541
دوشنبه 12 بهمن 1394, 23:15 عصر
سلام
تشکر از راهنمایی شما وممنون از اینکه زمان زیادی برای راهنمایی می گذارید بجای اینکه فایل را اصلاح کنید.
درهر صورت روشتون برای بنده جای تقدیر وتشکر داره.
مشکلم حل شداما بدلیل عدم آشنایی با دستورات sqlدقیقا متوجه عملکردش نشدم
باز هم ممنون:تشویق::تشویق::چشمک:
saeed28541
سه شنبه 13 بهمن 1394, 08:50 صبح
یک سوال دیگه
امکانش هست فیلدهایی که از نوع بولین هستن هم شمارش بشه.
درفایل نمونه نشون دادم
ممنون از راهنمایی شما
saeed28541
سه شنبه 13 بهمن 1394, 11:07 صبح
راه حلش را پیداکردم
expr1:sum(abs([chekbox1]))
روی حالت Expression هم گذاشته میشه.
دوستان راه بهتری پیشنهاد داشتن بزارن استفاده کنیم
e601
سه شنبه 13 بهمن 1394, 13:45 عصر
سلام
راه حل شما کاملا درسته. فقط فیلد elan که گذاشتید رو نیازی بهش ندارید. حذفش کنید.
کوئری شما فقط 4 فیلد نیاز داره. name ، shomare ، Expr1 ، Expr2
نام Expr1 و Expr2 رو هم هر چیزی میتونید بذارید. یه چیزی بذارید که با یه نگاه متوجه بشید چیه...
Extended
سه شنبه 13 بهمن 1394, 17:36 عصر
سلام مجدد.
یه نمونه گذاشتم تا سوالم مشخص بشه.
در فرم گزارش خودم یه کارهایی انجام دادم اشکالش اینکه باید روی تک تک رکوردها کلیک بشه تا تعداد شماره هاش رادر جدول cellنشون بده.
حالا شما روش بهتری دارید منتظر راهنماییتون هستم.؟
شما که خودت از اول جواب دادی به سئاول خودت :متفکر:
دیگخ چرا از بقییه پرسیدی ؟!
138785
saeed28541
سه شنبه 13 بهمن 1394, 23:16 عصر
از شما که پاسخ دادید ممنونم.
فیلد elan هم تو برنامه بنده حاوی اطلاعات هست در واقع اون فیلد هم باید شمارش بشه.
درمورد کاربر extendedهم باید بگم من جواب سوال را نداشتم و کمی در همین تالار وسایت های فارسی دنبال جواب سوالم گشتم و وقتی جواب را پیدا نکردم این تاپیک را گذاشتم.
ولی با مراجعه به سایت های لاتین وبخاطر عجله ای که داشتم وحس کنجکاوی راه حلش را پیدا کردم.
در هر صورت زحمت شما برای بنده قابل تقدیر وتشکر هست.
بازهم ممنون
:تشویق::تشویق::تشویق::تشویق:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.