PDA

View Full Version : کمک (فوری) در نوشتن دستور های T-SQL



sempaisaleh
شنبه 30 اردیبهشت 1391, 16:20 عصر
با سلام خدمت تمامی دوستان عزیز
یک سوال داشتم، من میخوام بیام توی یک جدولی یک select انجام بدم. بعدش در اون نتیجه یک کارایی انجام بدم. مثلا می خوام تو نتیجه دستور select بیام بگم که محتوای دو فیلد رو با هم عوض کن.
مثال:
اول توی یک جدولی یه مقداری رو جستجو می کنم



SELECT * FROM table1 WHERE S_NO = 1 AND year = 1391


بعدش بیام بگم تمامی این رکوردهایی که پیدا کردی بیا مقدار دو فیلد field1 , field2 رو جابه جا کن.




update (Search Results) Set tmpCol= field1
update (Search Results) Set field1= field2
update (Search Results) Set field1= tmpCol



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

با تشکر از همه - منتظر کمک های شما هستم. خیلی ضروریه به خدا

lastmory
شنبه 30 اردیبهشت 1391, 17:28 عصر
سلام اینجوری
میشه
:لبخند:
update table1
set
field1 = field2
where
S_NO = 1 AND year = 1391

sempaisaleh
شنبه 08 مهر 1391, 11:10 صبح
با سلام مجدد خدمت دوستان
یه سوال دیگه دارم:
یه جدول دارم که توش یه فیلد شماره هست(field1) که شماره ها به صورت دستی وارد می شن ولی باید به ترتیب باشه، یه فیلد سال هم هست(Sal).
حالا می خوام نگاه کنم ببینم:
1- تو این جدول مثلا تو سال 90 تو field1 چه شماره هایی وجود نداره.
2- بعد اون شماره ها رو ایجاد کنم.

با تشکر
SempaiSaleh

sempaisaleh
شنبه 08 مهر 1391, 13:41 عصر
توسط یکی از این کد هایی که تو همین سایت بود تونستم شماره یک رو بدست بیارم حالا میمونه شماره 2 که میخوام بیام تو جدول رکوردهایی برای این شماره ها ایجاد کنم

mohammad_kerman65
شنبه 08 مهر 1391, 13:46 عصر
select isnull(max(field1)+1,1)
یک عدد بعد از بزرگترین عدد رو واست میاره اگه هیچ عددی هم توش نباشه عدد 1 رو بر میگردونه

sempaisaleh
شنبه 08 مهر 1391, 13:52 عصر
select isnull(max(field1)+1,1)
یک عدد بعد از بزرگترین عدد رو واست میاره اگه هیچ عددی هم توش نباشه عدد 1 رو بر میگردونه

دوست عزیز مرسی بابت بابت جوابت. از این کد، اعداد حذف شده رو پیدا کردم.


SELECT n FROM dbo.Nums
WHERE n BETWEEN (SELECT MIN(col1) FROM dbo.T1)
AND (SELECT MAX(col1) FROM dbo.T1)
AND NOT EXISTS(SELECT * FROM dbo.T1 WHERE col1 = n);

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

حمیدرضاصادقیان
شنبه 08 مهر 1391, 14:42 عصر
سلام.
یعنی چی؟
خوب وقتی دارید Insert میکنید برای فیلد عددی بهش مقدار مورد نظر رو بدید؟ آیا فیلد از نوع Identity انتخاب شده یاخیر؟

نکته: لطفا سوالات خود را در تاپیکهای مختلف مطرح کنید.

sempaisaleh
شنبه 08 مهر 1391, 15:00 عصر
سلام.
یعنی چی؟
خوب وقتی دارید Insert میکنید برای فیلد عددی بهش مقدار مورد نظر رو بدید؟ آیا فیلد از نوع Identity انتخاب شده یاخیر؟

نکته: لطفا سوالات خود را در تاپیکهای مختلف مطرح کنید.

منظورم اینه که ممکنه X تا(میتونه هر تعدادی باشه) عدد باشه که تو جدولم نباشن (مثلا: ،...1،2،5،25،200،201،300،352،400)
حالا من بیام این X تا عدد رو به جدول ام اضافه کنم

حمیدرضاصادقیان
شنبه 08 مهر 1391, 21:17 عصر
خوب شما ابتدا باید این اعداد رو به کاربر در یک فیلد Memo نمایش بدید.بعد کاربر بتونه هنگام اضافه اعداد خالی رو درج کنه.