الانتقال إلى المحتوى

سولين قبلتهم فى موقع ومش عرفت احلهم ...ارجو المساعده..


rana2000

Recommended Posts

هناك 3 جدوال شكلهم كده

CAST_ID &CAST_NAME

1 RANA
2 CC
3 GG

SUP_ID &SUP_NAME
1 SEAF
2 CCC
3 VVV
4 DD

SUP_ID &CAST_ID
1 2
2 1
1 1

هنا SUP_ID و CAST_ID بريمر كاى مركب


مطلوب جمله سيلكت ترجع SUP_ID اللى اشتغل مع CAST_ID....او SUP_ID اللى اشترك مع CAST_ID

السوال التانى

2- عايز اكتب بروستزر على مستوى قاعده البيانات ياخد اسم الجدول و اسم الحقل يرجع مجموع الحقل SUM
و جزكم الله الف خير ..

رابط هذا التعليق
شارك

 select sup_name from supplier
where sup_id in (select sup_id from sup_cust)



create or replace function summ(p_table varchar2,p_col varchar2) return number
is
statment varvhar2(200);
res number;
begin
statment:='select sum('||p_col||')from'||p_table;
execute immediate statment into res;
return res;
end; 

رابط هذا التعليق
شارك

الاخ الكريم ..
شكرا على تفاعلك معى ..
و لكن لاسف احلين مش مظبوطين ...
1-

مطلوب جمله سيلكت ترجع SUP_ID اللى اشتغل مع CAST_ID....او SUP_ID اللى اشترك مع CAST_ID

انا اسفه موضحتش اوى فى السوال بيشترط كل ...يعنى هو SUP_ID
اللى اشتغل مع كل CAST_ID يعنى لازم يكون مشترك مع كل CAST_ID

السوال التانى ..انا فكرت زى حضرتك ..و حاولات انفذ طلع ايرور ...
ممكمن تجرب كود اللى حضرتك كتبه مش هيشتغل ...
رابط هذا التعليق
شارك

نا اسفه موضحتش اوى فى السوال


ياريت يتم وضع الاسكربت وايضا السؤال لسه مش واضح اوي

السؤال اثاني

كما قال اخي الكريم

لكن هناك خطأ بسيط غير مقصود في datatype مع بعض المسافات
create or replace function summ(p_table char,p_col char) return number
is
statment varchar2(200);
res number;
begin
statment:='select sum('||p_col||')from'||' '||p_table;
execute immediate statment into res;
return res;
end;

رابط هذا التعليق
شارك

السلام عليكم ...
الف شكر على تعاونك معى يا اخى الكريم .
انا عارفه انى المشكله فى المسافات وخد كود الاخ الكريم asd202وعدلته .وجربت مشتغلاش بعض كده رفعت ردى المشكله مش فى سنتيكس انا حد جربت كود حضرتك بعض التعديل و طلع نفس الايرور اللى كان بيطلع معى لما انا جربت لوحدى و نفس الايرور لما جربت كود الاخ asd202 وجربت الكود حضرتك نفس الايرور
على العموم حضرتك ممكن تجرب عندك تنادى على البروستر هيطلع مع حضرتك مشكله ...
انا نديتها كده

declare
x number(20);
begin 
x:= summ('employees','emp_id') ;
end;


.
انا افتكر ان المشكله ان execute immediate بتستخدم فى كتابه ddl فقط دخال كود pl ..
اما السوال التانى انا مش عندى اسكربت السوال زاى ظهر زاى ماشرحت انا .
هناك 3 جدوال شكلهم كده

CAST_ID &CAST_NAME

1 RANA
2 CC
3 GG

SUP_ID &SUP_NAME
1 SEAF
2 CCC
3 VVV
4 DD

SUP_ID &CAST_ID
1 2
2 1
1 1

هنا SUP_ID و CAST_ID بريمر كاى مركب
فى الجدول الاخير هتلاقى ان ممكن SUP_ID ممكن يتكرر مع اكتر منCAST_ID ..
المطلوب بقى SUP_ID اللى تكرر مع كل CAST_ID...
يارب اكون اقدرت اوصل الفكره ..
وجزكم الف خير ..

رابط هذا التعليق
شارك


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

فرضا ان الجدول الاول اسمه cust
الثاني supp
والثالث cust_supp

ان شاء الله الكويري يكون كده

select cust_supp


.cust_id ,cust.name from cust_supp

,cust

where cust_supp

.cust_id=cust.id

group by cust_id ,cust.name

having count(*) =(select count(*) from supp)




function صحيحة



موفقة

رابط هذا التعليق
شارك

جزاك الله الف خير ..
الكويرى اكيد كده صح...
بس الفانكشن انا نديتها بطريقت حضرتك طلعت نفس الايرور ..
هل حضرتك جربتها عندك.و هل انا طريقتى اللى انا نديتها فى البدايه غلظ .
جزاك الله الف خير
.

تم تعديل بواسطة rana2000
رابط هذا التعليق
شارك


جزاك الله الف خير ..
الكويرى اكيد كده صح...
بس الفانكشن انا نديتها بطريقت حضرتك طلعت نفس الايرور ..
هل حضرتك جربتها عندك.و هل انا طريقتى اللى انا نديتها فى البدايه غلظ .
جزاك الله الف خير
.



نعم مجربة بعد التعديل عليها في مشاركتي قبل السابقة
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية