View Full Version : لیست رکوردهایی که مجموع یکی از فیلدهای آنها با عددی برابر باشد
MNosouhi
جمعه 26 آذر 1389, 18:23 عصر
چطور می تونم لیست رکوردهایی را بدست بیارم که مجموع یکی از فیلدهای آنها با عددی برابر باشد .
یه چیزی شبیه این :
Select id,num from table1 where sum(num)=100
البته می دونم که کد بالا اشتباهه و استفاده از sum شرایط خاصی داره .
دوستان اگر راه حلی دارن لطفا پیشنهاد کنند .
chasbonakam
جمعه 26 آذر 1389, 18:42 عصر
سلام
البته سوال یه ذره گنگه ولی به نظر من با استفاده از Select های تو در تو می تونی به گزارش دلخواهت برسی.
Reza_Yarahmadi
جمعه 26 آذر 1389, 22:23 عصر
اگر منظورتون اینه که برای رکوردهایی که یک فیلدشون مساوی هستند این مجموع محاسبه و مقایسه بشه میتونید از Group by استفاده کنید
Select
Id,
Sum(num) as SumNum
From
TableName
Group by
ID
Having
Sum(Num) = 100
MNosouhi
شنبه 27 آذر 1389, 07:54 صبح
البته سوال یه ذره گنگه
اگر منظورتون اینه که ...
جدولی به فرمت زیر داریم :
نوع فیلد نام فیلد
Int id
Int Num
که حاوی اطلاعات زیر است :
Num id
100 1
120 2
150 3
190 4
حال چطور می توان لیست رکوردهایی را نمایش داد که مجموع ستون Num مثلا 310 شود ، یعنی جدول زیر را نمایش دهد :
Num id
120 2
190 4
البته چون نتونستم با ادیتور سایت خوب کار کنم ، سوالم رو در فایل word ذخیره کردم و ضمیمه کردم .
با تشکر از همه دوستان
Reza_Yarahmadi
شنبه 27 آذر 1389, 10:38 صبح
بازم توضيحاتتون كامل نيست.
تا تركيب چند عددي محاسبه بشه؟ يعني فرضا اگر 310 ركورد فيلد مورد نظرشون 1 بود اونها رو هم بصورت يك نتيجه مطلوب نمايش بده يا فقط مجموع 2 ركورد رو محاسبه كنه؟
براي مورد اول راه حل مناسبي فكر نميكنم وجود داشته باشه ولي براي حالتي كه فقط مجموع 2 ركوردي مد نظر باشه ، ميشه با يك Join به نتيجه رسيد.
Select
t1.Id,
t2.Id,
t1.Num,
t2.Num
From
tbl t1 , tbl t2
Where
t1.Num + t2.Num = 310
MNosouhi
شنبه 27 آذر 1389, 14:10 عصر
از پیگیریتون ممنون .
تا تركيب چند عددي محاسبه بشه؟
اینکه ترکیب چند عددی باشه مهم نیست (2،3،4و...) ، مهم اینه که بتونم لیست رکوردهای مورد نظر را بدست بیارم (و البته حداقل تا اندازه ای بهینه باشه ، یعنی منطقی نیست بخام برای همه ترکیب های 2تایی ، 3 تایی و ... تست کنم تا به جواب برسم ) .
فکر کنم همون کد تاپیک اول از هر توضیحی بهتر بتونه منظورم را بفهمونه :
Select id,num from table1 where sum(num)=100
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.