الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب مساعدة بخصوص outer join مع حساب مجموع بين تاريخين

بدأه aminealaoui في 18 مايو 2011 · 2 رد · 552 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله تعالى وبركاته

أخواني أريد مساعدتكم حيت لدي جدولين

الأول client(id,name,tel)

التاني transaction (idclient,numProd,datet,prixt,tva)

المطلوب هو حساب مجموع (sum) كل من و tva , prixt مابين تاريخين مختلفين يختارهما المستعمل مع اظهار جميع الزبائن (client) يعني الذين لهم أو ليس لهم معاملات

بعد مجموعة من المحاولات تمكنت من اظهار المطلوب لكن عند اضافة الشرط على التاريخ يطهر لي فقط الأسطر التي تحترم الشرط وإذا أزلت جملة الشرط يحسب مجموع جمسع المعاملات

أرجو أن لاتبخلو علي بأراركم وأي توضيح أنا في الخدمة

وشكرا لكم مسبقا

#2

أخي أنا ححاول أساعد بس يارب تشتغل معاك

أول حاجه إعمل

Create function total( @id int,@date1 date,@date2 date)
returns table
as
return(
Select distinct id,sum(prixt)as 'Sum_prixt',sum(tva)as 'Sum_tva'
       From client inner Join [transaction] 
       On client.id=[transaction].idclient
       where id=@id and [transaction].datet between @Date1 and @Date2 
       group by id
)

Go

بعدين إعمل

Create Proc test (@date1 date,@date2 date)
as

Select  distinct id,name



,(select Sum_prixt from total(client.id,@date1,@date2)), (select Sum_tva from total(client.id,@date1,@date2))




 from client


Go

بعد كده نفذ الكود

exec test '2011-01-05','2011-01-05'

بس طبعا غير قيم التاريخ

1

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#3

شكرا لك أخي medo_Programming كتيرا لقد تمكنت من حل المشكل بفضل التعديل القليل على مساعدتك وتقبل مني كامل التقدير والإحترام

وهذا الكود الذي استعملته لكي تعم الإفادة للجميع

أول حاجه قمت بعمل دالة total

Create function total(@date1 date,@date2 date)
returns table
as
return(
Select distinct idclient,sum(prixt)as 'Sum_prixt',sum(tva)as 'Sum_tva'
       From client 
       where  [transaction].datet between @Date1 and @Date2 
       group by id
)

Go

بعدين أضفت stored procedure

Create Proc test (@date1 date,@date2 date)
as

Select  distinct id,name

, Sum_prixt , Sum_tva  from client left outer join total(@date1,@date2) as total_periode on client.id = total_periode.idclient


Go

بعد كده نفذ الكود

exec test '1-05-2011','15-05-2011'

وشكرا لك مرة أخرى أخي medo_Programming

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…