استفاده از sum فیلد جدول دوم در کوئری سلکت
دوتا جدول header و check دارم. در هردو جدول فیلد code وجود داره که باهم ارتباط میدم. در جدول چک فیلد amount وجودداره که برای هر کد باید جمعش بدست بیاد.
میخوام رکوردهای جدول هدر را انتخاب کنم و برای هر رکورد جمع مبلغی که برای آن کد در جدول چک وجودداره وجودداشته باشه
select header.* , sum(check.amount) as checksum from header left join check on header.code=check.code
مشکل کد بالا اینه که باید تمام فیلدای جدول هدر یا گروپ بشن یا سام بشن که فیلداش زیادن.
راه حل دیگه ای داره؟
نقل قول: استفاده از sum فیلد جدول دوم در کوئری سلکت
select header.*,
coalesce((selectsum(check.amount)fromcheckwhere check.code = header.code ),0)aschecksumfrom header
نقل قول: استفاده از sum فیلد جدول دوم در کوئری سلکت
با یدونه select از جدول دوم حلش کردم.
این coalesce چیه؟ تو اکسس نمیشناستش!
نقل قول: استفاده از sum فیلد جدول دوم در کوئری سلکت
نقل قول:
نوشته شده توسط
Mrs.Net
با یدونه select از جدول دوم حلش کردم.
اگه تونستید با یک select انجام بدید لطف میکنید اگر اون queryرو بذارید.
نقل قول:
نوشته شده توسط
Mrs.Net
این coalesce چیه؟ تو اکسس نمیشناستش!
coalesce خیلی چیز بدرد بخوریه. ریخت این دستور بصورت زیره:
COALESCE ( expression [ ,...n ] )
اگر expression اول null بود expression دوم را اجرا میکند و اگر expression دوم null بود expression سوم را اجرا میکند. در اون کوئری برای آنکه checksum مقدار null نداشته باشد اگر null شد آن را به صفر تبدیل میکنیم. من از اکسس خبر ندارم. میدونم که تو sql server این دستور وجود دارد.
نقل قول: استفاده از sum فیلد جدول دوم در کوئری سلکت
این کوئری کاربر once4ever دادند خیلی جالب بود برای من:
select header.* , check2.sumamn
from header left join (select check.code , sum(check.amount) as sumamn group by check.code) as check2
on header.code=check2.code
این تابع هم که گفتید احتمالا همون iif هست.
نقل قول: استفاده از sum فیلد جدول دوم در کوئری سلکت
نقل قول:
نوشته شده توسط
Mrs.Net
این تابع هم که گفتید احتمالا همون iif هست.
من اکسس بلد نیستم.
نقل قول: استفاده از sum فیلد جدول دوم در کوئری سلکت
نقل قول:
نوشته شده توسط
Mrs.Net
این کوئری کاربر once4ever دادند خیلی جالب بود برای من:
select header.* , check2.sumamn
from header left join (select check.code , sum(check.amount) as sumamn group by check.code) as check2
on header.code=check2.code
تو این query هم که شما ذکر کردید دوتا select وجود داره. در مجموع موافقم این هم راهی برای مسئله شماست.
نقل قول:
نوشته شده توسط
Mrs.Net
این تابع هم که گفتید احتمالا همون iif هست.
من اکسس بلد نیستم که بخوام نظر بدم