PDA

View Full Version : سوال: چرا این کوئری مجموع درست فیلدها رو بدست نمی یاره؟



idocsidocs
سه شنبه 13 دی 1390, 14:32 عصر
الان فیلدهای من 126 و 126و 126 و 87 هست. با کوئری زیر می خوام مجموع فیلدها رو بدست بیارم ولی عدد بدست اومده 160 هست ! چرا این عدد بدست می یاد؟



SELECT SUM(f1) AS f11 FROM `tb1` WHERE (`id`='1')

MMSHFE
سه شنبه 13 دی 1390, 16:05 عصر
عزیز مگه id کلید اصلی نیست؟ اگه اینطور باشه، هر رکورد دارای یک id منحصر به فرد هست و درنتیجه، شرط where شما فقط یک رکورد رو جمع میزنه. ضمناً بهتره اینطوری بنویسید:

SELECT SUM(`f1`) AS `f1_sum` FROM `tbl1` WHERE ...

و به جای ... شرطی رو بنویسید که همه رکوردهای موردنظر شما رو در بر بگیره.
موفق باشید.

idocsidocs
سه شنبه 13 دی 1390, 16:23 عصر
عزیز مگه id کلید اصلی نیست؟ اگه اینطور باشه، هر رکورد دارای یک id منحصر به فرد هست و درنتیجه، شرط where شما فقط یک رکورد رو جمع میزنه.متوجه این موضوع نشدم. لطفا بیشتر توضیح بدید.

MMSHFE
سه شنبه 13 دی 1390, 17:33 عصر
ببینید دوست عزیز، اگه id کلید اصلی جدول شما باشه، شرط WHERE id=1 باعث میشه فقط یک رکورد انتخاب بشه و دستور SUM هم فقط مجموع همون یک رکورد رو محاسبه میکنه. اگه ممکنه ساختار جدولتون رو بنویسید و بگین میخواین مجموع رو برحسب چه شرایطی محاسبه کنید تا Query مناسب رو بررسی کنیم.

idocsidocs
سه شنبه 13 دی 1390, 17:40 عصر
کوئری ها درست بودن و الان مشکلم حل شده. من توی خروجی ستون امتیاز رو بجای ستون مبلغ کالاها نمایش می دادم که همین باعث شد که محاسبه من اشتباه بشه !

مرسی از راهنماییتون.