ورود

View Full Version : سوال: مشکل در دستور insert



baharkabiri
چهارشنبه 10 مهر 1387, 13:59 عصر
دو تا جدول دارم.که میخوام ماکزیمم یک فیلد از یک جدول رو انتخاب کنم وا ین فیلد رو به همراه یک سری فیلد های دیگه با دستور insert در جدول دوم وارد کنم.
باید چیکار کنم؟میشه یه نمونه کد برام بزارین؟

el_abdollahi
چهارشنبه 10 مهر 1387, 14:40 عصر
insert in to tbl2
select max(fld1),fld2,fld3
from tbl1
group by fld2,fld3

امیدوارم براتون مفید باشه .
موفق باشین.

baharkabiri
چهارشنبه 10 مهر 1387, 17:55 عصر
ممنون که جواب دادین.ولی منظورم اینه که:
insert into basket (product_id, basket_id,number,price)
values(var1,maxbasket_id+1,var3,var4
یعنی میحتوی یکی از فیلد ها ماکزیمم مقدار همان فیلد از جدول بعلاوه یک است
اشتباه گفته بودم اصلآ به جدول دوم کاری ندارم.

sheitoonbala
پنج شنبه 11 مهر 1387, 00:14 صبح
سلام . پیشنهادم اینه :
1 ) از function استفاده کن.
2 ) اگه داری با stored procedure عملیت insert رو انجام میدی قبل از دستور insert با دستور

SELECT MAX (basket_id) FROM tblname
مقدار رو بدست بیار ، بعدش یکی زیادش کن و دردستور insert ازش استفاده کن.

baharkabiri
پنج شنبه 11 مهر 1387, 10:45 صبح
راه دوم رو رفتم اما نمیشه.خطای درست نبودن نوع میده.


bi= "select max basket_id from basket"

MyCommand.CommandText = "insert into basket (product_id, basket_id,price_all) values ('" + code + "' , '" + bi + "' ,'" + price + "')"

کم حوصله
پنج شنبه 11 مهر 1387, 11:45 صبح
سلام
اولا دستورات را اینگونه اصلاح کن



bi= "select max (basket_id) + 1 from basket"
MyCommand.CommandText = "insert into basket (product_id, basket_id,price_all) values (" + code + " , " + bi + " ," + price + ")"

در زمان کار با فیلدهای عددی نباید از ' استفاده کنی

دوما اینجوری هم می تونی کار کنی



MyCommand.CommandText = "insert into basket (product_id, basket_id,price_all) values (" + code + " , (select max (basket_id) + 1 from basket) ," + price + ")"