PDA

View Full Version : قرار دادن ستون یک ویو در کنار وسو دیگر



elena2007
چهارشنبه 07 دی 1390, 08:22 صبح
سلام . می دونم سوالم ساده است ولی لطفا کمکم کنین . من یه ویو دارم که یه فیلد داره که از جوین دو جدول حاصل شده . و شامل 100 رکورد هستش . همچنین یه ویو دیگه دارم به همین ترتیب ساخته شده و با همین تعداد رکورد . می خوام حاصل این دو ویو رو با هم نشون بدم . بدون هیچ شرطی . یکی لطفا کمکم کنه . خیلی واجبه . ممنون

baktash.n81@gmail.com
چهارشنبه 07 دی 1390, 10:31 صبح
سلام

دوحالت وجود داره اگه رکورد ها رو می خوای در ادامه همدگیه نشون بدی که اینجوریه

Select f1,f2,f3 from view 1
union all
Select f1,f2,f3 from view 2

فکر کنم اگه می خوای ستون ها کنار هم باشند باید یه رابطه ای بین رکورد ها وجود داشته باشه ...

elena2007
چهارشنبه 07 دی 1390, 10:52 صبح
ببینید من سوالم یه جور دیگه طرح می کنم :
ما دو تا جدول داریم . یکی tolidi یکی code . توی tolidi دو تا فیلد داریم به اسم code1 , code2 که شامل اعداد 0 تا 100 هستند .
توی code دو تا فیلد داریم . به اسم code و name . فیلد code اعداد صفر تا 100 , name اسم این کدهاست . مثلا کد 0 اسمش آبی هست . کد 1 اسمش قرمز و ...
من باید یه ویو بنویسم که دو فیلد code1 , code2 رو برام بیاره . با این شرط که به جای اعدادش ، توضیحات اون اعداد رو که همون فیلد namre جدول code هستش رو بنویسه .
همین ...
لطفا یکی کمک کنه

tazarvmmr
چهارشنبه 07 دی 1390, 11:19 صبح
ببینید من سوالم یه جور دیگه طرح می کنم :
ما دو تا جدول داریم . یکی tolidi یکی code . توی tolidi دو تا فیلد داریم به اسم code1 , code2 که شامل اعداد 0 تا 100 هستند .
توی code دو تا فیلد داریم . به اسم code و name . فیلد code اعداد صفر تا 100 , name اسم این کدهاست . مثلا کد 0 اسمش آبی هست . کد 1 اسمش قرمز و ...
من باید یه ویو بنویسم که دو فیلد code1 , code2 رو برام بیاره . با این شرط که به جای اعدادش ، توضیحات اون اعداد رو که همون فیلد namre جدول code هستش رو بنویسه .
همین ...
لطفا یکی کمک کنه

ببین این یک مثاله، حالا خوت مشابه اینو برای جداول خودت بنویس:


SELECT Invoices.InvoiceUserCode, Users.UserName
FROM Users RIGHT OUTER JOIN
Invoices ON Users.Id = Invoices.InvoiceUserCode

elena2007
چهارشنبه 07 دی 1390, 12:21 عصر
ای خدااااااااااااااااااااااا
ببینید این دستور من برای ویو یک هستش :
SELECT dbo.coding.name AS code_0
FROM dbo.coding INNER JOIN
dbo.Tolid ON dbo.coding.code = dbo.Tolid.code_0

اینم برای ویو دوم :
SELECT dbo.coding.name AS code_1
FROM dbo.coding INNER JOIN
dbo.Tolid ON dbo.coding.code = dbo.Tolid.code_1

می خوام نتیجه این دو تا ویو با هم نشون بدم . کنار هم . نه اینکه هر دوتاش با هم توی یک فیلد بیان . یعنی دو تا فیلد داشته باشم . یکی برای مقادیر ویو یک و یکی برای مقادیر ویو دوم .
تعداد رکوردهای ویو یک و دوم یکی هست

baktash.n81@gmail.com
چهارشنبه 07 دی 1390, 15:23 عصر
... می تونید از محیط ایجاد ویو در خود SQL Server استفاده کنید احتیاجی نیست که کد هم بنویسید کدش رو خودش می سازه ... فقط کافی دوبار جدول coding رو add کنین وبا دو فیلد مختلف join کنیدش ...

یه کدی ساخته میشه شبیه این ...


SELECT coding1.name AS code_0,dbo.coding.name AS code_1
FROM dbo.Tolid INNER JOIN
dbo.coding AS coding1 ON dbo.coding.code = dbo.Tolid.code_0 INNER JOIN
dbo.coding ON dbo.coding.code = dbo.Tolid.code_1


در واقع دفعه دوم که جدول کدینگ رو اضافه می کنید خودش یک alias براش در نظر میگیره ...

اگه بازم متوجه نشدید یا جواب شما این نبود مثال بزنید ...
اگر هم بقیه منظور شما رو نمی فهمن ممکنه اشکال از نحوه بیان کردن شما باشه ... و یه نکته دیگه سعی کنید اسم جداول و فیلد هاتون متفاوت و با مفهوم باشه مثلا CodeID که کلید اصلی جدول Code هست و هر جا به عنوان کلید خارجی استفاده می شه یه فرق کوچیکی داره ... مثلا Code_ID یا CodeFID