PDA

View Full Version : حرفه ای: تبدیل جدول موجود به جدول دیگه (تصویر ضمیمه شده برا توضیح بهتر)



رامین مرادی
سه شنبه 14 اسفند 1397, 11:16 صبح
سلام دوستان
من جدول شماره یک رو دارم و میخوام اونو تبدیل کنم به جدول شماره دو. یعنی اسم اشخاص برای سطرهای یکسان در یک ردیف باشه.
در صورت امکان میخوام این کار از طریق کد اس کیو ال باشه. اگه هم امکانش نبود از طریق دیتا تیبل اینکارو پیاده کنم .ممنون میشم راهنماییم کنید .

149879

farhad_shiri_ex
سه شنبه 14 اسفند 1397, 12:16 عصر
سلام دوستان
من جدول شماره یک رو دارم و میخوام اونو تبدیل کنم به جدول شماره دو. یعنی اسم اشخاص برای سطرهای یکسان در یک ردیف باشه.
در صورت امکان میخوام این کار از طریق کد اس کیو ال باشه. اگه هم امکانش نبود از طریق دیتا تیبل اینکارو پیاده کنم .ممنون میشم راهنماییم کنید .

149879

اگر با کوئری بخواهی انجام بدی یکم تودر تو میشه و بازدهی کمی هم خواهد داشت به این علت که باید از یک sub query در لیست فیلدها استفاده کنی که جدول را جستجو کنه!
به نظرم بهتره از دوتا کوئری مجزا استفاده کنی و در زمان نمایش merge کنی تو یک دیتا تیبل و نمایش بدی هم ساده تر هم سریعتر

Mahmoud Zaad
سه شنبه 14 اسفند 1397, 12:26 عصر
سلام
از طریق Sql، اول باید با استفاده از xml path و stuff بیایید بر اساس شماره نامه، ارجاع دهنده هر شماره رو به دست بیارید که تقریبا نتیجه شبیه جدول 2 به دست میاد و اونو در نهایت اینسرت کنید توی جدول 2.
مثال
http://barnamenevis.org/archive/index.php/t-332567.html
Select stuff((select ',' +NameField from NameTable for xml path('')),1,1,'')as result

اینم برای اینسرت

https://tableplus.io/blog/2018/09/sql-server-insert-into-table-with-value-select-from-another-table.html
(https://tableplus.io/blog/2018/09/sql-server-insert-into-table-with-value-select-from-another-table.html)
فقط مشکلی که وجود داره اون کد هست که ظاهرا باید اولین کد در شماره نامه باشه که الان راهی به ذهنم نمی رسه.

ولی در سمت برنامه خیلی راحت می تونی انجامش بدی. اول دیتاتیبل رو پر میکنی بعد با یه حلقه، عملیات مورد نظر رو انجام میدی.
foreach(DataRow row ind dt.Rows)
{
//
}