PDA

View Full Version : سوال: چگونگی مرتب کردن اطلاعات دریافتی از بانک اطلاعاتی



Ali_Sedaghat
جمعه 28 خرداد 1389, 22:15 عصر
با سلام خدمت کاربران محترم و عرض تشکر به خاطر زحماتی که در دادن جواب به سوالاتم متحمل می شوید
یک سوال خدمت شما عزیزان دارم.
من در بانک اطلاعاتی دو جدول با مشخصات زیر دارم.
نام جدول اول : Users
این جدول دارای فیلدهای UserID , Username, Password, Email می باشد که فیلد UserID کلید اصلی و یونیک هست.
نام جدول دوم : Orders
این جدول هم دارای فیلدهای OrderID, UserID, BookName می باشد که فیلد OrderID کلید اصلی و یونیک هست.

اما سوال :
من قصد دارم گزارشی از کتاب های سفارش شده بگیرم که این گزارش باید به صورت مرتب شده (صعودی) ، ابتدا بر اساس کد کاربر و بعد کد سفارش باشد.

نمی دونم منظورم را تونستم روشن بیان کنم یا نه.
یک مثال می زنم : دفترچه تلفنی را در نظر بگیرید. ما قصد داریم که اطلاعات این دفتر ابتدا براساس نام خانوادگی و بعد نام مرتب شود.

من از کدهای زیر استفاده کردم و آن طور که می خواستم جواب نداد.
البته اگر کدهای کاربر در جدول Orders پشت سر هم و مرتب شده وارد شوند مشکلی نیست.
اما چنان چه سفارش های 1 و 26 و 75 مربوط به کاربر 23 ، سفارش های شماره 2 و 18 و 45 مربوط به کاربر 13 و سفارش های 12 و 20 و 32 مربوط به کاربر 115 و سفارش های 10 و 19 مربوط به کاربر 8 باشد ، ترتیب ها به هم می خورد.
به عبارت بهتر نامرتب وارد شدن کدهای کاربری در جدول Orders ترتیب را از میان می برد که مشکل من در این است که چگونه می تونم این مشکل را برطرف کنم.
من حتی از گزارش گرفته شده آرایه ساختم ولی باز هم نتونستم مشکلم را حل کنم.

کد اول :


select * from Orders order by UserID

کد دوم :


select * from Orders order by UserID, OrderID


حالا می خوام این اطلاعات به ترتیب زیر در صفحه جدید نمایش داده شود.
1- نام خانوادگی (به جای کد کاربر) 2- شماره سفارش 3- نام کتاب سفارش شده.

چنان چه کسی می تونه مرا راهنمایی کنه ، ازش ممنون می شم که جواب سوالم را بده.
با تقدیم احترام
صداقت

trade_mark
جمعه 28 خرداد 1389, 23:28 عصر
این کوئری دو تا جدول رو به وصل و براساس شماره سفارش مرتب می کند(دقت کن ببین فیلدها رو درست نوشتم.با عجله نوشتم)

select * from orders inner join users on users.userid=orders.UserID order by orders.orderid