PDA

View Full Version : سوال: ترکیب دو جدول و مرتب سازی بر اساس تاریخ



erfan_urchin
شنبه 02 شهریور 1392, 21:31 عصر
دوستان من این سوالو تو فروم T-SQL اما جواب مناسبی نگرفتم گفتم شاید اینجا جواب بگیرم
فرض کنید دوتا جدول داریم یه دونه برای "خرید" یه دونه برای "فروش"
حالا من میخوام این دوتا رو با هم union کنم به طوری که بر اساس تاریخ مرتب بشن اما هر کاری میکنم به شکل زیر در میاد
http://uplod.ir/6nzjeg8t8g0t/Untitled.jpg.htm
اما من میخوام به شکل زیر در بیاد
http://uplod.ir/8qidn3ipauqz/Untitled2.png.htm
یعنی اینجوری نباشه که اول خریدها رو نشون بده بعد فروش هارو ؛ میخوام فروش ها و خرید هارو بر اساس تاریخ مرتب کنه
از کد زیر استفاده کردم اما خطا میگیره
(select * from buy)
union all
(select * from sales)
order by sales.date,buy.date
خطاش اینه:
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.
ممنون میشم کمکم کنید

sohil_ww
شنبه 02 شهریور 1392, 21:52 عصر
بین جدول فروش و خریدت ارتباط هست ؟

کلید خارجی تعریف کردی ؟

شاید بتونی از inner join استفاده کنی

فکر کنم اگه بانکتم آپ کنی اساتید بهتر کمکت کنن

erfan_urchin
شنبه 02 شهریور 1392, 22:00 عصر
دلیلی نداره ارتباط داشته باشن
من دارم union all میکنم
تو عکس هم بهتون نشون دادم که اگه order by نزارم خطا نمیگیره و کار میکنه اما من نمیخوام اول همه خرید ها نمایش داده بشن بعد فروش ها
میخوام بر اساس تاریخ مرتب بشن
مثلا امروز خرید دارم و فردا هم فروش دارم و پس فردا دوباره خرید دارم
میخوام اول خرید رو نمایش بده بعد فروش و در ردیف آخر هم خرید
اگه میشه کدی چیزی در اختیارم بزارین

erfan_urchin
یک شنبه 03 شهریور 1392, 03:12 صبح
دوستان لطفا کمک کنید من نیاز دارم به این کد :ناراحت:

veniz2008
یک شنبه 03 شهریور 1392, 03:34 صبح
سلام.
وقتی از دستور Union استفاده میشه . نتیجه ای که از چند select بدست میاد، ستون هاش بر حسب اولین select هست.
یعنی شما دیگه نمیتونی از جدول sales و ستون های اون استفاده کنی. باید از ستون های اولین select که همون جدول buy هست در قسمت order by استفاده کنید.
متن خطا هم داره همینو میگه که در جلوی order by باید فیلدی بیاد که در select list قرار داره .