PDA

View Full Version : مشکل در نمایش اطلاعات



programerinfonet
جمعه 28 تیر 1392, 12:22 عصر
سلام دوستان
این عکس محیط برنامه ی منه و جداول بانک اکسسمه
107520
همون طور که تو تصویر هم مشخصه من دو تا دریافت کننده دارم و دو تا پرداخت کننده . درواقع دریافت کننده ی اول ماهیت حساب رو نشون میده و دریافت کننده دوم خود دریافت کننده و همین طور هم در پرداخت کننده ها
ماهیت ها سه نوع بیشتر نیستند
حساب
اشخاص
صندوق
پس در کل دریافت ها و پرداخت ها از 9 حالت بیشتر خارج نیست
حالا من دستور SELECT رو چه طور بنویم که مثلأ اگه دریافت کننده ی اول "حساب"بود به جای مقدار 7 در دریافت کننده ی دوم مقدار رکوردی که آیدیش 7 می باشد و در جدول حساب هست رو نمایش بده و همین طور برای رکوردهای بعدی مثلأ اگر دریافت کننده ی اول "اشخاص"بود در دریافت کننده ی دوم به جای مقدار 1 نام شخصی که آیدیش 1 هست رو نمایش بده
توی این موندم اساسی توروخدا یکی کمکم کنه
اینم بانکم
107521

Mahmoud Zaad
جمعه 28 تیر 1392, 13:27 عصر
سلام
شما باید هر سه جدول که به قول شما ماهیت هستند (اشخاص، حساب و صندوق) رو ادغام کنید و فقط یک جدول داشته باشید با حداقل سه فیلد
- کد سیستمی
- شرح که یا اسم شخص هست یا عنوان صندوق یا شماره حساب
- فیلد نوع که مشخص کنه ردیف مربوط به اشخاص یا حساب ها یا صندوق هست.

programerinfonet
جمعه 28 تیر 1392, 13:38 عصر
دوست عزیز همین جدول رو که شما میگید ساختم تو بانکی که ضمیمه کردم موجوده یه نگاه بهش بندازی متوجه میشه رابطه هاشم ایجاد کردم
ممنون میشم واضح تر کمکم کنید
مرسی

khokhan
جمعه 28 تیر 1392, 14:03 عصر
دوست عزیز همین جدول رو که شما میگید ساختم تو بانکی که ضمیمه کردم موجوده یه نگاه بهش بندازی متوجه میشه رابطه هاشم ایجاد کردم
ممنون میشم واضح تر کمکم کنید
مرسی

پس حالا مشکل شما اینه که به جای اعداد نام افراد مربوط به هر عدد رو بنویسه درسته ؟

programerinfonet
جمعه 28 تیر 1392, 14:11 عصر
دقیقأ
فقط همون طور که می بینید من از هر فیلد دریافت کننده و پرداخت کننده دو تا دارم که اولیش داره گروه ماهیت معلوم می کنه و دومیش نام ماهیت اگه گروه اشخاص بود نام شخص بیوفته اگه حساب بود شماره حساب بیوفته اگه صندوق بود عنوان صندوق بیوفته
امیدوارم تونسته باشم منظورمو برسونم

khokhan
جمعه 28 تیر 1392, 14:12 عصر
دقیقأ
فقط همون طور که می بینید من از هر فیلد دریافت کننده و پرداخت کننده دو تا دارم که اولیش داره گروه ماهیت معلوم می کنه و دومیش نام ماهیت اگه گروه اشخاص بود نام شخص بیوفته اگه حساب بود شماره حساب بیوفته اگه صندوق بود عنوان صندوق بیوفته
امیدوارم تونسته باشم منظورمو برسونم
یه لحظه صبر کن برات درست کنم بفرستم

programerinfonet
جمعه 28 تیر 1392, 15:49 عصر
توروخدا یکی کمک کنه
خیلی لنگم

sohil_ww
جمعه 28 تیر 1392, 16:22 عصر
توروخدا یکی کمک کنه
خیلی لنگم

دوست عزیز وقتی آقای khokhan (http://barnamenevis.org/member.php?131732-khokhan) قول 1 کاری می ده انجام می ده براتون خیالتون راحت
ایشون هم سطح سوادشو دارن هم رو قولش هست
1 کم صبر داشته باشید

programerinfonet
شنبه 29 تیر 1392, 13:08 عصر
ببینید سوالمو با تصویر مطرح می کنم
107568
الان تو برنامم داده ها به شکل دیتاگرید بالایی نمایش داده میشه که میخوام با توجه به داده های جدول هایی که دادم مثل دیتا گرید پایینی که ترسیم کردم نمایش داده بشه
فکر کنم دیگه سوالمو واضح مطرح کردم
ممنون

fakhravari
شنبه 29 تیر 1392, 16:07 عصر
كار زيادي نميخواهيد كنيد . همه موارد را با يه جوين ساده ميتونيد بگيريد.

programerinfonet
شنبه 29 تیر 1392, 16:14 عصر
كار زيادي نميخواهيد كنيد . همه موارد را با يه جوين ساده ميتونيد بگيريد.
دستت درد نکنه عزیز همین جوین ساده منو سه روزه الاف کرده شما امتحان کن ببین میشه به ما هم بگو
فقط به سوالم خوب دقت کن
دستت درد نکنه

khokhan
شنبه 29 تیر 1392, 17:08 عصر
دستت درد نکنه عزیز همین جوین ساده منو سه روزه الاف کرده شما امتحان کن ببین میشه به ما هم بگو
فقط به سوالم خوب دقت کن
دستت درد نکنه
عزیز جوین قانون خودشوداره ازیه فیلد در یک جدول بیش از یک بار نمی شه استفاده کرد در حالی که شما از یک فیلد یکبار می خواهید در ستون دیافت کننده استفاده کنید و ودر همان حال در ستون پرداخت کننده این چطور امکان پذیره ؟؟؟؟؟؟؟؟؟؟؟

فقط می مونه pivot که اون هم با بانک اکسس مثل زنده کردن مرده می مونه

حالا شما با چه دستوری این سه تا جدول رو به صورت گرید بالایی در آوردین

programerinfonet
شنبه 29 تیر 1392, 17:31 عصر
جازه بدین من سورسو واستون می فرستم ببینید متوجه میشید

107605ا

aslan
شنبه 29 تیر 1392, 21:30 عصر
سلام
اینو تست کنید :


Select PFgroup,PFid,IIF(PFGroup ='اشخاص', PP1.Pname,ac1.Anumber ) AS [دریافت نام] ,PTgroup,PTid,iif(PTGroup='اشخاص',PP2.Pname,a c2.Anumber) AS[پرداخت نام],PAmount From ((((Payment P Inner Join Account ac1 On P.Pfid=ac1.Id)
Inner Join Account ac2 On P.PTid=ac2.Id)
Inner Join People PP1 On P.PFid=PP1.Id)
Inner Join People PP2 On P.PTid=PP2.Id)

programerinfonet
شنبه 29 تیر 1392, 22:06 عصر
دوست عزیز ضمن تشکر از شما من این کد رو تو کوئری اکسس تست کردم اجرا نمیده خطا داره
توی کوئری تستش کن بهم جواب بده
مرسی

programerinfonet
شنبه 29 تیر 1392, 22:10 عصر
درستش کردم اما جابه جا میندازه
مینویسه اشخاص اما شماره حساب میاره می نویسه حساب نام شخص میاره
یه چیز قاطی پاطیه

aslan
شنبه 29 تیر 1392, 22:22 عصر
درستش کردم اما جابه جا میندازه
مینویسه اشخاص اما شماره حساب میاره می نویسه حساب نام شخص میاره
یه چیز قاطی پاطیه
مطمئنید ؟
تصویر زیر که درسته !!!! - نه ؟
107621

programerinfonet
شنبه 29 تیر 1392, 22:27 عصر
این آره درسته
میشه همین بانکو ضمیمه کنی ؟

aslan
شنبه 29 تیر 1392, 22:40 عصر
این آره درسته
میشه همین بانکو ضمیمه کنی ؟

چرا که نه - این همون بانک اطلاعاتی خودتونه
107622

programerinfonet
شنبه 29 تیر 1392, 22:41 عصر
کاش میشد این دکمه ی تشکر رو پشت سر هم زد

programerinfonet
یک شنبه 30 تیر 1392, 00:31 صبح
107630
از تعداد رکوردهای موجود که 9 تا هستند تنها دوتاشون نمایش داده میشه
انم کد
SELECT P.PFgroup, IIf(PFgroup='اشخاص',PP1.PName,ac1.ANumber) AS [دریافت نام], P.PTgroup, IIf(PTGroup='اشخاص',PP2.PName,ac2.ANumber) AS [پرداخت نام], P.PAmount
FROM (((Payment AS P INNER JOIN Account AS ac1 ON P.Pfid = ac1.AId) INNER JOIN Account AS ac2 ON P.PTid = ac2.AId) INNER JOIN People AS PP1 ON P.PFid = PP1.PId) INNER JOIN People AS PP2 ON P.PTid = PP2.PId;

aslan
یک شنبه 30 تیر 1392, 00:58 صبح
سلام
شما به جز اشخاص و حساب .............. صندوق هم دارین که در query ذکر نشده است
تلاش کنید خودتون کوئری را اصلاح کنید ( احتمالا با تغییر IIF مشکل حل خواهد شد )
اگر به نتیجه نرسیدید من سعی میکنم براتون اصلاحش کنم . البته الان نه ........ بعدا
موفق باشید

programerinfonet
یک شنبه 30 تیر 1392, 13:50 عصر
سلام
شما به جز اشخاص و حساب .............. صندوق هم دارین که در query ذکر نشده است
تلاش کنید خودتون کوئری را اصلاح کنید ( احتمالا با تغییر IIF مشکل حل خواهد شد )
اگر به نتیجه نرسیدید من سعی میکنم براتون اصلاحش کنم . البته الان نه ........ بعدا
موفق باشید
عزیز جان یه لطفی در حق ما بکن این قسمتشم نگاه کن
من هرچی کوئری اصلاح کردم کم و زیاد کردم نشد که نشد
جدول صندوق به این شکله
table name : Sandough
SId
SCaption
همین داده ها هم که تو عکس بالا مشخصه

aslan
یک شنبه 30 تیر 1392, 17:23 عصر
سلام
اینو تست کنین


SELECT PFgroup, PFid,
Switch(PFGroup='اشخاص',PP1.Pname,PFGroup='ح اب',ac1.Anumber,PFGroup='صندوق',S1.Scaptio n) AS [دریافت نام],
PTgroup, PTid, Switch(PTGroup='اشخاص',PP2.Pname,PTGroup='ح اب',ac2.Anumber,PTGroup='صندوق',S2.Scaptio n) AS [پرداخت نام], PAmount
FROM (((((Payment AS P
LEFT JOIN Account AS ac1 ON P.Pfid=ac1.Id)
LEFT JOIN Account AS ac2 ON P.PTid=ac2.Id)
LEFT JOIN People AS PP1 ON P.PFid=PP1.Id)
LEFT JOIN People AS PP2 ON P.PTid=PP2.Id)
LEFT JOIN Sandough AS S1 ON P.Pfid=S1.Sid)
LEFT JOIN Sandough AS S2 ON P.PTid=S2.Sid;