PDA

View Full Version : حرفه ای: دستور اشتراک بین دو select



sinaone1
دوشنبه 29 فروردین 1390, 11:52 صبح
متاسفانه در بخش sql انگار دیگه نمیشه تاپیک جدید ایجاد کرد و این گزینه حذف شده و من ناگزیر به پرسیدن این سئوال در اینجا شدم
من یه تیبل دارم که می خوام از اون دو فیلد sum بگیرم ولی برای هر فرد where مختلفی برای sum ها قرار داره به عنوان مثال sum اولی رو حساب کنه اگر سال 1389 هست و Sum دومی رو محاسبه کنه به شرط اینکه سال 1390 باشه و اینها رو کنار هم قرار بده ،
در کل اینطور بگم که دو تا Select دارم که هر کدوم شرطها و فیلد های خودشون رو دارند ولی جواب هر دو ی اونها مربوط میشه به یک ID پس با هم مرتبطند .
باز هم معذرت می خوامکه اینجا پرسیدم و اگه عجله نداشتم این کارو نمی کردم
Thanx

Mani_rf
سه شنبه 30 فروردین 1390, 09:57 صبح
از دستور UNION ALL برای انجام این کار استفاده کن.

در اینجا (http://www.w3schools.com/sql/sql_union.asp)نحوه استفاده توضیح داده شده است.

shadi khanum
سه شنبه 30 فروردین 1390, 20:20 عصر
از دستور UNION ALL برای انجام این کار استفاده کن.

در اینجا (http://www.w3schools.com/sql/sql_union.asp)نحوه استفاده توضیح داده شده است.

Union مشکل داره و درست نیست واسه اینکه دوستمون گفته فیلدهای خروجی دو تا Select با هم متفاوت

shadi khanum
سه شنبه 30 فروردین 1390, 20:38 عصر
اگه فیلدهای خروجی دو تا Select با هم متفاوتن مثلا اولی دو تا فیلد داره و دومی 5 تا میتونی اینجوری از union استفاده کنی
select id ,salary , null,null,null
from tbl1 union all select id,name,famil,mark,age from tbl2

حالا این هم باز به شرطی که نوع فیلدها با هم یکی باشه جواب میده واسه جل این مشکل هم مثلا اگه salary از نوع int و name از نوع nvarchar، چون این دو تا رو میخواد تو یه ستون نشون بده باید Salary رو به nvarchar تبدیل کنی..
select id ,cast(salary as nvarchar(50) , null,null,null
from tbl1 union all select id,name,famil,mark,age from tbl2