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

صياغة جملة Select معقده هل من مساعد

مغلق
بدأه serious في 26 أغسطس 2007 · 14 رد · 1,325 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني

لدي جدولين

الاول للموظفين ويحتوي على

الرقم

الاسم

العنوان

والاخر لدرجات الاداء الوظيفي

ويحوي

الرقم

السنه

الدرجه(من 100(

التقرير

اريد صياغة جملة select

بحيث احصل على الموظفين الذين مجموع درجات اخر ثلاث سنين اكثر من 250

كيف السبيل لذلك

#2

هل سؤالك مرتبط بأن يكون هناك جدولين

[/وسط]

#3

نعم اخي

#4

ماهو نوع قاعدة البيانات ؟

عشان بس جملة الـ Select والربط بين الجداول تكون اوضح

رســالـة من يتيــم

AytamResalhGIFmesg.gif

http://www.aytam.org.sa/message_aytam.php

----

أتمنى لك التوفيق اخي cold0zero في موقعك

logo.gif
#5

الجدوال بالاكسس

والربط بالفيجول عن طريق ado

#6

مافيه رد

اللي يعرف لايبخل علينا محتاج الى هذا

#7
اقتباس
Select * From Emp,EmpGrd Where Emp.ID = EmpGrade.ID And EmpGrade.Grade > 250

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#8

اخي العقده اشكرك على الرد

بس الجمله اللي كتبتها

لجدول واحد بشرطين

وايضا لم تذكر مجموع اخر درجات

انا عندي جدولين

جدول للموظفين واخر للدرجات

#9

alter procedure get_grade

@id integer

as

declare @sums integer

select @sums=sum(t2.grade) from t2

select name from t1,t2 where t1.id=t2.id and @sums>250 and

(datepart(yyyy,getdate()))-(datepart(yyyy,t2.yeare))<3

#10

sorry i cant write arabic at the time being

thanks alot mouaz

but can u explain a bit what u wrote and i ll be much thankfull of you

#11

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

لا أحد يعرف ويبخل في هذا المنتدي بإذن الله

إليك هذه

SELECT emp.id,emp.nom,sum(empdeg.deg) 
from emp,empdeg
where (emp.id=empdeg.id)and(empdeg.years>2004)
group by emp.id,emp.nom
having sum(empdeg.deg)>250

جربها ومنتظرين نتيجتك

سلام

#12
محمد كمال كتب:
السلام عليكم ورحمة الله

لا أحد يعرف ويبخل في هذا المنتدي بإذن الله

إليك هذه

SELECT emp.id,emp.nom,sum(empdeg.deg) 
from emp,empdeg
where (emp.id=empdeg.id)and(empdeg.years>2004)
group by emp.id,emp.nom
having sum(empdeg.deg)>250

جربها ومنتظرين نتيجتك

رائع اخي محمد

بس واضح الكود انه يعطي النتيجه بس فيه مشكله

انت حطيت معيار اقل من 2004

انا مابي المعيار يدوي بمعنى انا ابي اخر 3 سنوات بدون ماححدهم

يعني ممكن كل موظف مسجل له درجات اكثر من عشر سنوات

انا ابيه يجمع اخر سنوات منهم

فهل تستطيع تعديله ليوافق ماريد

ومو ممكن تستعين بعبارة SELECT TOP 3

وتضع الفرز تنازلي

انا على قولة اخوانا المصريين غلب حماري احتاج دفعه للامام حتى اتجاوز هذا

وبالمره نستفيد جميعا من هذا الاستعلامات المعقده

سلام

#13

أهلا بك سيريوس

اقتباس
انا ابيه يجمع اخر سنوات منهم

لقد حاولت استخراج التاريخ الحالي من داخل SQL ولكن لا فائدة

حاول أن تضيفه برمجيا بهذا الشكل

...
...
Database.SQL.Add('where (emp.id=empdeg.id)and(empdeg.years>'+YearOf(Now)+'''')
...
...

أعتقد أنها لاتختلف كثيرا في VB

اقتباس
ومو ممكن تستعين بعبارة SELECT TOP 3

????

اقتباس
وتضع الفرز تنازلي

قم بتغيير اسم الحقل الثالث

sum(empdeg.deg) as s

ثم أضف هذا السطر في الأخير

تنازلي

order by s desc

تصاعدي

order by s asc

والسلام عليكم

#14

اشكرك على اثراءالنقاش اخي محمد

انت بحلك هذا تفترض ان لكل سنه تقرير

طيب ممكن تكون فيه سنه ماكتب له تقرير

يعني ممكن يكون في اجازه بدون راتب او غيرها

اريد حل يجمع لي اخر ثلاث تقارير حتى وان لم يكن هناك تسلسل

يعني ممكن تكون السنه 2007 واللي قبلها 2003

اتمنى ان يكون المطلوب واضح

#15

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

أنا آآسف عالتأخير

و لكن على مايبدو أني فهمت السؤال غلط

تم تعديل هذه المشاركة بواسطة mouaz في 21 سبتمبر 2007 في 02:04

هذا الموضوع مغلق.

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