PDA

View Full Version : سوال: محاسبه بدون استفاده از کرسر



s_savabi
چهارشنبه 08 دی 1389, 08:08 صبح
سلام دوستان
سوال من اینه:
دو تا جدول دارم که یکی اطلاعات کالا و دیگری یک مستر دیتیل واسه فرضا فاکتور فروشه
می خوام یک تابع بنویسم که جمع کل فاکتور رو بده
ولی در زمان محاسبه هر رکورد می خوام یک اطلاعاتی از جدول کالا با توجه به کد کالای همون ردیف فاکتور به دست بیارم ولی نمی خوام این کار رو با حلقه انجام بدم.باید چطوری عمل کنم؟
کدی که من دارم به این صورته ولی میخام تغییرات زیر توش اعمال بشه


select @Sum = Sum(price * Number) from factor_detail where Srl = @Srl

این دستور جمع جدول دیتیل رو میده ولی من میخام بگم که مقدار a از جدول کالا که Kala_Srl اون با Kala_Srl توی factor_detail برابره رو برگردونه و در مقداری که دارم محاسبه میکنم ضرب کنه ولی از cursor و حلقه هم نمیخام استفاده کنم .میخام کلش رو توی یه دستور بنویسم.میشه؟
از Case When میشه استفاده کرد.نحوه استفادش واسه این مورد چطوریه؟
لطفا راهنماییم کنید
مرسی

Reza_Yarahmadi
چهارشنبه 08 دی 1389, 08:44 صبح
دوست عزيز چندبار سوالتون رو خوندم ولي نفهميدم دقيقا چي ميخوايد!!!
ساختار 2 جدول ، نوع رابطه اونها و در صورت امكان يك مثال از داده هاي موجود و خروجي مورد نظرتون رو اينجا بذاريد تا بهتر بشه كمكتون كرد.

s_savabi
چهارشنبه 08 دی 1389, 09:56 صبح
جدول کالا :
Kala(K_Srl,K_Code,K_Name,K_Zarib defualt(1),K_Price) on K_Srl Primary key
جدول فاکتور(مستر)
Factor_Master(f_Srl,F_Number,...F_Desc) on f_Srl primary key
جدول فاکتور (دیتیل)
Factor_Detail(f_Srl,fd_Srl,K_Srl,fd_price,fd_numbe r,fd_Desc) on f_srl,fd_Srl primary key,k_srl forign key on kala
همونطور که عرض کردم میخام جمع کل فاکتور رو به دست بیارم ولی این جمع فقط شامل( sum(fd_number*fd_Price نمیشه بلکه باید در ضریب کالاها هم ضرب بشه یعنی
( sum(fd_price * pd_number * k_zarin
همونطور که ملاحظه میکنید مقدار k_zarib رو باید از جدول کالا به دست آورد


select @Sum = Sum(fd_price * fd_Number *(Select K_zarib from kala where k_srl = ?)) from factor_detail where Srl = @Srl
ولی نمیدونم جای علامت سوال باید چی بذارم که به فیلد K_Srl هر رکورد اشاره کنه
امیدوارم تونسته باشم منظورمو برسونم

Reza_Yarahmadi
چهارشنبه 08 دی 1389, 12:13 عصر
بازم توضيحات كافي نيست!! اين فيلدها چي هستند؟ چه نوع اطلاعاتي درش دخيره ميشه؟ چه نوع رابطه اي بين جدولها وجود داره؟ يك نمونه خروجي مورد نظرتون رو اينجا بذاريد .....؟ ميشه حدسهايي زد ولي طبق حدس نميشه جواب درستي داد.
ولي در مورد كدتون (خيلي نميدونم چه كار ميكنه) ميتونيد بصورت زير استفاده كنيد

select @Sum = Sum(fd_price * fd_Number * (Select K_zarib from kala where k_srl = f.K_Srl)) from factor_detail f where f.Srl = @Srl