PDA

View Full Version : سوال: مشکل این کد



khoshblagh
چهارشنبه 02 اردیبهشت 1388, 12:01 عصر
با سلام خدمت دوستان
من دو جدول دارم که در یکی اسامی حسابها و در جدول دیگر گردش حسابها میباشد.
در جدول گردش حسابها دو فیلد Bes وBed باید بر اساس فیلد Level جدول اول جمع زده شود
لازم به ذکر است در جدول اول فیلد Level دارای اعداد یک تا چهار میباشد . اگر عدد 4 باشد
به راحتی و درست اجرا میشود. زیرا بر اساس کد مشترک در هر جدول اجرا میشود. ولی اگر بر اساس عدد 3 باشد معنی آن این است که تمام کدهای مشترک که3 رقم سمت چپ آن
یکی باشد بدون توجه باقیمانده ارقام کد با هم جمع و نشان داده شود. برای آنهایی که به
حسابداری آشنا میباشند معنی آن این است که حسابها را در سطح معین کل نمایش دهند.
متشکرم

SELECT left(tblCodHesab.Cod,3) as CodMoinKol1 , Name , tblCodHesab.Cod
FROM tblCodHesab
WHERE (((tblCodHesab.Level="3")) AND (( left(tblCodHesab.Cod,3)) =(SELECT Left(tblAcnt87.Cod,3) as CodMoinKol2
,Sum(Bes) as SumBes , Sum(Bed) as SumBed
FROM tblAcnt87
GROUP BY Left(tblAcnt87.Cod,3)))
ORDER BY left(tblCodHesab.Cod,3);
http://barnamenevis.org/forum/images/statusicon/user_online.gif http://barnamenevis.org/forum/images/buttons/report.gif (http://barnamenevis.org/forum/report.php?p=709038) http://barnamenevis.org/forum/images/misc/progress.gif

goldkavir
پنج شنبه 03 اردیبهشت 1388, 14:24 عصر
وقتی عبارت شرطی می نویسید، باید یه عبارت مساوی یه عبارت دیگه باشه، شما چند تا مقدار Select کردید و مساویه یه مقدار گذاشتید، در واقع چطور میشه چند تا مقدار با یکی مقایسه بشه؟؟
این نوع مقایسه مربوط به مجموعه هاست (IN)
یکی از فیلدهارو Select کنید مثلا:

SELECT left(tblCodHesab.Cod,3) as CodMoinKol1 , Name , tblCodHesab.Cod
FROM tblCodHesab
WHERE (((tblCodHesab.Level="3")) AND (( left(tblCodHesab.Cod,3)) =(SELECT Left(tblAcnt87.Cod,3) as CodMoinKol2
FROM tblAcnt87
GROUP BY Left(tblAcnt87.Cod,3)))
ORDER BY left(tblCodHesab.Cod,3