View Full Version : بیرون کشیدن دو ستون از داخل یک ستون با ارسال کوری
sunn789
سه شنبه 17 بهمن 1391, 13:30 عصر
سلام
یه جدول داریم تو اس کیو ال برای دوکالا مبلغ های برای هر شخص ذخیره شده مثلاً کالای 1 مبلغ 30 و کالای 2 میلغ 40 ، هر شخص ممکنه چند بار در ماه خرید داسته باشه اگه بخوام اطلاعات هر شخص روبه صورت ماهیانه در بیارم به صورت معمولی فقط میتونیم هر بار تو کوری یک کد کالا رو ارسال کنیم و یک ستون داشته باشیم ، چه کنیم دو تا ستون جدا گانه داشته باشیم در صورتی که اطلاعات تو بانک تو یه ستونن
امیدوارم درست توضیح داده باشم
mostafa.hnz
سه شنبه 17 بهمن 1391, 14:26 عصر
یه مقدار بهتر توضیح بدید
sunn789
سه شنبه 17 بهمن 1391, 18:19 عصر
یه جور دیگه بگم
مشکل من تو نرم افزار حقوقه در شخص ماهییانه مجموع چند ایتم رو میگیره مثلاً دو تا از کدها 702و 703 هست خوب حالا ما میخواییم گزارش بگیریم تو sql ساده مینویسیم "Select Pay from tblSalary Where ItemCode = 702" و اطلاعات رو تو یه ستون داریم و یا میتونیم بنویسیم "ٌSelect Pay from tblSalary Where ItemCode = 703" و اطلاعات رو از جدول هر دو کوئری از یک ستون اطلاعات بیرون میکشه و یه ستون به ما میده حالا اگه بخوام از تو نتیجه کوئری دو تا ستون داشته باشیم یکی برای 702 و یکی برای 703 همراه تو یک نتیجه نمایش داده بشن چی باید بنویسیم ؟
امید وارم شده باشه
mostafa.hnz
سه شنبه 17 بهمن 1391, 22:00 عصر
این دو مقدار 702 و 703 ثابت هست؟یعنی از قبل خودتون این کدها رو می دونید؟
sunn789
سه شنبه 17 بهمن 1391, 22:29 عصر
اره میدونم این دو مقدار ثایت هستن
mostafa.hnz
سه شنبه 17 بهمن 1391, 23:20 عصر
اینجوری که من متوجه شدم میتونی از store procedure استفاده کنی
که توی store procedure دو تا select بزنی
یا اگه میخوای شرط or بزار برای select
sunn789
چهارشنبه 18 بهمن 1391, 08:28 صبح
شرط or یک ستون بر میگردونه به این معنی اطلاعاتی که کد ایتم آنها 702 و با 703 باشد در صورتی من میخوام اطلاعات 702 و 703 جداگانه توی دو تا ستون نشون داده بشن
mostafa.hnz
چهارشنبه 18 بهمن 1391, 16:28 عصر
دستور or میاره فقط اینجوری بنویسید
name="value" or name="value"
sunn789
چهارشنبه 18 بهمن 1391, 17:15 عصر
این کد اس کیو ال من ، میگی این اور رو کجا بزارم
اصلی ترین کارم کشیدن اطلاعات با کد @ItemCode که حالا میخوامItemCode = 702@ و ItemCode=703@ رو در دوستون نشون بده
SELECT dbo.Personnel.CurrentYear, dbo.Personnel.CurrentMonth, dbo.Personnel.PersonCode, dbo.Personnel.PersonNo,
dbo.Personnel.NationalNo, dbo.Personnel.Name, dbo.Personnel.Family, dbo.Personnel.FatherName, dbo.PersonnelPaidItemSalary.f_SalaryItemCode,
dbo.PersonnelPaidItemSalary.PaidYear, dbo.PersonnelPaidItemSalary.PaidMonth, dbo.PersonnelPaidItemSalary.ItemValue,
dbo.PersonnelPaidItemSalary.Paid, dbo.PersonnelPaidItemSalary.PaidStatus, dbo.Personnel.C_EmployTypeCode
FROM dbo.Personnel INNER JOIN
dbo.PersonnelPaidItemSalary ON dbo.Personnel.PersonCode = dbo.PersonnelPaidItemSalary.f_PersonCode
WHERE (dbo.Personnel.CurrentYear = 1389) AND (dbo.Personnel.CurrentMonth = 10) AND (dbo.PersonnelPaidItemSalary.PaidMonth BETWEEN 1 AND 12) AND (dbo.Personnel.NationalNo =@NationalCode) AND dbo.PersonnelPaidItemSalary.f_SalaryItemCode = @ItemCode
ORDER BY dbo.Personnel.Family, dbo.Personnel.FatherName
mostafa.hnz
چهارشنبه 18 بهمن 1391, 19:01 عصر
and آخری رو پاک کن جاش or بزار
و 2بار این شرط رو تکرار کن
sunn789
چهارشنبه 18 بهمن 1391, 22:29 عصر
احتمالاض من بد جور گفتم ، دستور SELECT تعداد ستونها رو بر میگردونه من میخوام یه ستون دیگه اضافه داشته باشم که از درون ستون dbo.PersonnelPaidItemSalary.ItemValue, دو تا ستون بکشم بیرن یکی اینکه dbo.PersonnelPaidItemSalary.f_SalaryItemCode برابر 702 و دیگری اینکه دوباره همین فیلد ببرابر 703 است نمیخوام دو تمام اطلاعاتی که dbo.PersonnelPaidItemSalary.f_SalaryItemCode برابر 702 و یا 703 هست رو توی یک ستون نشون بدم اینه 702 رو تو یک شتون نشون بره و 703 رو توی یه ستون دیگه
متشکر
sunn789
دوشنبه 23 بهمن 1391, 23:56 عصر
ببینید ما این اطلاعات رو دریم
ItemValue/Value/Code{نام ستونها توی جدول}
702/5000/1
702/3000/2
703/2000/1
703/6000/2
حالا میخوام وقتی اطلاعات مربوط به کد 1 رو میخام اینجوری برگردونه
702/703{نام ستونها}
5000/2000
این دستور رو چه جور بنویسم میبینید ستون ItemValue رو میخوام به دو ستون تبدیل کنم
امیدوارم واضح باشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.