PDA

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



erfan_urchin
شنبه 02 شهریور 1392, 02:06 صبح
فرض کنید دوتا جدول داریم یه دونه برای "خرید" یه دونه برای "فروش"
حالا من میخوام این دوتا رو با هم 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
خطاش اینه:
Msg 205, Level 16, State 1, Line 1
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
ممنون میشم کمکم کنید

Reza_Yarahmadi
شنبه 02 شهریور 1392, 10:33 صبح
بصورت زیر امتحان کنید

Select * From Buy
UNION ALL
Select * From Sales
Order BY Data
اسمی که در Order By میاد نام ستونی از جدول اول است (Buy) که میخواید مرتب سازی بر اساس اون انجام بشه.

erfan_urchin
شنبه 02 شهریور 1392, 13:17 عصر
بصورت زیر امتحان کنید

Select * From Buy
UNION ALL
Select * From Sales
Order BY Data
اسمی که در Order By میاد نام ستونی از جدول اول است (Buy) که میخواید مرتب سازی بر اساس اون انجام بشه.
اینم نوشتم اما بازم همون error رو داد
چیکار کنم؟؟؟:ناراحت:

Reza_Yarahmadi
شنبه 02 شهریور 1392, 13:36 عصر
متن خطای شما رو نگاه نکردم!!
خطایی که میده ربطی به مرتب سازی نداره ، تعداد و و یا نوع فیلدهای جداول Buy و Sales یکی نیست. این موضوع رو چک کنید.

erfan_urchin
شنبه 02 شهریور 1392, 23:38 عصر
عذر میخوام من اشتباهی یه error دیگه رو اینجا نوشتم
من کد شمارو میزنم این error رو میده
ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator.

Reza_Yarahmadi
یک شنبه 03 شهریور 1392, 06:14 صبح
خطا به این دلیله که فیلدی که جلوی Order By اومده توی جدول اول (Buy) وجود نداره. نام ستونهای خروجی شما بر اساس نام ستونها جدول اول تعیین میشه.
جلوی Order By نام ستونی که میخواید مرتب سازی بر اساس اون انجام بشه رو بدون Alias (فقط نام ستون) رو قرار بدید
Order By YourField

erfan_urchin
یک شنبه 03 شهریور 1392, 13:05 عصر
ممنونم درست شد