PDA

View Full Version : جمع مقادیر فیلد استخراجی !



Profesorjd
دوشنبه 31 اردیبهشت 1386, 20:29 عصر
سلام خدمت تمامی اساتید
جدولی دارم که با استفاده از شرط در کوئری مشخص کرده فقط اطلاعات رکوردهای این شرط را نمایش دهد و با استفاده از Count تعداد رکوردها را نیز نشان دهد . می خواهم این تعداد رکوردها را نیز جمع کند و مجموع را نمایش دهد . با استفاده از یکی دو کوئری این کار فقط برای یک فیلد مشخص انجام می دهد ولی اگر بخواهم جمع چند فیلد رکورد ها را بگیرم جه باید بکنم ؟

مهدی قربانی
سه شنبه 01 خرداد 1386, 00:11 صبح
سلام
یک فایل نمونه برات آپلود می کنم نمیدونم درست متوجه منظورت شدم یا نه .

Profesorjd
چهارشنبه 02 خرداد 1386, 22:12 عصر
سلام
فرض اینکه ستون A حروف a , b چندبار تکرار شده باشد . شرط میزاریم که که تعداد رکوردهای ردیفهای a , b را نشان بده . (کوئری1) شرط میگذاریم که جمع تعداد رکوردهای a , b در کوئری اول را نشان بده . ( کوئری دوم) تا اینجا با sum و Count حل است . اما اگر تعداد کوئری اول بیشتر باشد ( کوئری 1 و کوئری 1-1 و کوئری 2-1 و .. ) در کوئری دوم اشتباه محاسبه میکند

مهدی قربانی
پنج شنبه 03 خرداد 1386, 00:23 صبح
سلام
دوست عزیز اگر درست متوجه شده باشم شما قصد داری که در یک query با یک شرطی مثلاً فیلتر عبارتهای a و b در فیلد a‌ و عبارت d در فیلد c تعداد رکوردهای فیلتر شده مشخص بشه بعد نتیجه شمارش رکوردهای مورد نظر رو با هم جمع کنی مثلاً در فیلد a مجموعاً 5 رکورد مساوی با مقادیر a و b و بدست میاد و در فیلد c هم 3 رکورد متناظر با مقدار d بدست میاد حالا با جمع 3 و 5 عدد 8 که مجموع حاصل شمارش رکوردهای مورد نظر هست رو بدست میاری درسته ؟

Profesorjd
سه شنبه 08 خرداد 1386, 23:14 عصر
سلام
تقریبا درست گفتید . همان جدولی که فرستادید را مثال زدم که بهتر متوجه مشکلم شوید .
با این فرق که در جدول ارسالی در یک ستون تکرار نیست که فرض من تکرار است . بنابراین ما با گذاشتن شرط در Cirtina=a & b فقط فیلدهایی که شرط درست می باشد می اورد . حالا بگیم چند فیلد a و چند فیلد b دارد که با ‍Count در Total تعداد میدهد . کوئری دوم جمع فیلدهای a و b را با Sum نشان میدهد . این چون یک شرط دارد درست جواب میدهد . در کوئری اول ، کوئری دیگری میسازیم که تعداد فیلدهایی که مثلا c و d در آن تکرار شده نشان بده بعد در کوئری بعدیش جمع بزن . در آخر یک کوئری بسازیم که جمع a و b را در یک ستون و جمع c , d را در ستون دیگر و جمع e و f را در ستون دیگر و ... اینجاست که اشتباه نشان میدهد !

مهدی قربانی
سه شنبه 08 خرداد 1386, 23:28 عصر
سلام
نمونه رو چک کن ببین جواب میده ؟

Profesorjd
پنج شنبه 24 خرداد 1386, 09:16 صبح
سلام و تشکر . البته معذرت برای اینکه دو هفته ای نبودم ! فایل پیوست کاری است که من انجام میدهم .. همانگونه که می بینی Query_3 برای دو کوئری جواب درست میدهد ولی برای بیش از دو کوئری جوابش غلط میشود . مثال آن Query_3_1 است !

davood-ahmadi
جمعه 25 خرداد 1386, 03:39 صبح
با سلام.
بخاطر اینکه اصل کاری که شما می کنید اشتباه است. و دوم اینکه که کووری سوم شما در بین جداول رابطه ای نیست.

Profesorjd
جمعه 25 خرداد 1386, 15:33 عصر
سلام :
1- بفرمایید راه درست کدام است ؟ با توجه به اینکه میدانید من چه میخواهم .
2- رابطه برای چه ؟ چون جمع مقادیر میخواهم از این روش استفاده کردم

hamid1081
یک شنبه 27 خرداد 1386, 13:28 عصر
من هم یک مشکل مشابه دارم.
من توی یک فیلد یک سری عدد وارد کردم. می خواستم توی یک کوئری جمع اعداد یک فیلد رو حساب کنم. ولی نمی تونم.

davood-ahmadi
یک شنبه 27 خرداد 1386, 21:14 عصر
من دقیقاً متوجه مشکلات شما نشدم. میشه بیشتر توضیح بدید. چون نتیجه اصلی شما می خواهد در کدام قسمت بنشیند. اگر بدونم بهتر می تونم کمکتون کنم ولی یک راهنمایی می کنم ببینید که می توانید از این مورد در برنامتون استفاده کنید:
شما در ابتدا یک جدول با دو فیلد با نامهای دلخواه خودتان درست کنید و کووری Query_2_1 و کووری Query_2_2 و Query_3 را از نوع Append Query کنید و نتیجه این کووری ها را به آن تیبل و فیلدهایی که خودتان درست کردید ارسال کنید و سپس آن جدول را در کار مربوطه استفاده کنید.

Profesorjd
دوشنبه 28 خرداد 1386, 17:22 عصر
سلام . من یک سری رکورد دارم که ماهانه بابت تعدادی از آنها باید گزارشی داشته باشم .
رکوردهای من جدول حقوقی کارکنان ( کارمندان و کارگران و قراردادیها ) یک کارخانه است . من باید همه ماهه کنترل کنم که تعداد کارکنان هر بخش چند نفر هستند و چقدر حقوق می گیرند و با عملکرد آن بخش تناسب ریالی دارد یا نه ؟ جدول همه کارکنان یکی است ولی با کد هر بخش قابل تفکیک است . نکته اینجاست که هر بخش خودش از چند بخش دیگر تشکیل میشود بنابراین کدهای هر بخش شامل چند کد دیگر می شود . مثل تراشکاری که شامل تراش دستی - تراش صنعتی و قالب گیری است . بنابراین وقتی در کوئری اول بر اساس کدهای زیر بخش ها بخش اصلی کنترل می شود که نتیجه رکوردهای بخش اصلی اول مشخص می شود . حالا مجموع چند بخش یک قسمت کارگاهی است و چند کارگاه کارخانه .
من باید زیربخشها را انتخاب کنم ( کوئری اول ) مجموع این زیر بخشها را کنترل کنم ( کوئری دوم ) مجموع قسمتها را نیز کنترل کنم ( کوئری سوم ) در کوئری های اول و دوم مشکلی نسیت در کوئری سوم هم چنانچه دو قسمت انختاب شوند مشکلی نیست ولی در دو قسمت بیشتر جمعی که نشان میدهد غلط است . بعبارتی حاصل ضرب تعداد شرطها در تعداد کل است !

davood-ahmadi
چهارشنبه 30 خرداد 1386, 10:33 صبح
روی نمونه ارسالی شما تغییراتی دادم اگر متوجه عمل تغییرات انجام شده بشوید می توانید روی برنامه خودتان نیز انجام داده و آمار مربوطه را خواهید گرفت. درضمن نتیجه کار فایل ارسالی را می توانید در Temp Query ببینید. راهنمایی: اعمال انجام شده بر روی فایل تقریباً بر اساس توضیحات تایپیک قبلی است.