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

استرجاع البيانات فى صف واحد


hrs

Recommended Posts

السلام عليكم

هذا على جدول emp

set serveroutput on Declare
Cursor C1 is
select ename from (select rownum,ename
from emp order by sal desc ) where rownum<=10 ;
v_id varchar2(2000);
z varchar2(500);
Begin Open C1;
loop
Fetch c1 into v_id; Exit when C1%notfound;
if z is null then
z:=v_id;
else
z:=z||','||v_id;
end if;
End loop;
dbms_output.put_line(z);
Close C1;
End;
/

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

اخ مصطفى تشكراتي لك .. وجزاك الله الف خير

ولكن كالعادة !! سؤال .. ينفع استخدمها في الريبورت لأني عاوزه استخدمها لعرض مثلا اصحاب اكبر عشر معاشات في فيلد معين ..؟؟

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

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

create or replace function emp_max return varchar2 is
--Declare
Cursor C1 is
select ename from (select rownum,ename
from emp order by sal desc ) where rownum<=10 ;
v_id varchar2(2000);
z varchar2(500);
Begin Open C1;
loop
Fetch c1 into v_id; Exit when C1%notfound;
if z is null then
z:=v_id;
else
z:=z||','||v_id;
end if;
End loop;
Close C1;
return(z);
End;




to call it

select emp_max  from dual;



وفقكم الله

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

السلام عليكم
يمكنك تحويلها الى function ويتم استداعائها من التقارير وتعمل جيدا
create or replace function emp_max return varchar2 is
--Declare
Cursor C1 is
select ename from (select rownum,ename
from emp order by sal desc ) where rownum<=10 ;
v_id varchar2(2000);
z varchar2(500);
Begin Open C1;
loop
Fetch c1 into v_id; Exit when C1%notfound;
if z is null then
z:=v_id;
else
z:=z||','||v_id;
end if;
End loop;
Close C1;
return(z);
End;




to call it

select emp_max  from dual;



وفقكم الله



جزاااااااااااااااااك الله خيرااااااااااااا ياباشمهندس مصطفى
رابط هذا التعليق
شارك

السلام عليكم

من خلال ال data model يتم بناء ال query ولكن اريد معرفة كيف ستسخدمي هذه الفانكشن يمكنك عمل لها query خاص بها للاحذ النتيجة مباشرة ووضعها على التقرير

ماهو الباراميتير الذي تريدي وضعه

وفقك الله

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

شوف اخي انا عملت هذه الفورميولا :

وهي كالتالي لنفس الهدف

function CF_1Formula return varchar2 is--(bokcde1 varchar2)
 Result varchar2(100);
 temp varchar2(30):=null;
-- college varchar2(100);
 cursor c1 is select a3.dptengdsc
from rgsdba.pdptcdet a3 , kbokbsct a4
where a3.dptcde in ( select a2.crsinlclgcde 
     from kcrsbokt a1,rgsdba.rcrsinlt a2 
     where a1.crsinl=a2.crsinlcde and a1.crsbok=a4.bokcde and a4.bokcde=:BOKCDE);
begin open c1;
loop
fetch c1 into temp; Exit when C1%notfound;
if temp is null then result:=temp;
else result:=result ||' , '||temp;
end if;
end loop;
close c1;
return (result);
end;



وعملت فيلد المصدر بتاعه هو الفورميولا ديه .. طيب ..والقيمة تتغير على حسب :BOKCDE
وهو عبارة عن عنصر من عناصر الكويري ..
ولكن يظهر لي خطأ
rep-1517

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

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

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

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

×   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.

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

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

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