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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

ارجو المساعده في جملة Sql


2 رد (ردود) على هذا الموضوع

#1 ksarrayrah

ksarrayrah

    عضو

  • الأعضــاء
  • 24 مشاركة

تاريخ المشاركة 17 September 2008 - 10:33 AM

ياجماعة بدي مساعة في جملة
sql

Titles.
titleno title
20 mathmatic


titleauths
titleno authno
20 1
20 2
20 3


authors
authno name
1 Khaled
2 Amer
3 tariq

Select title,name from titles,titleauths,authors
Where titles.titleno=titleauths.titleno and
Titleauths.authno=authors.authno;

النتيجة

Mathmatic khaled
Mathmatic amer
Mathmatic tariq


ولكني بدي جملة النتيجة كالاتي

Mathmatic \ khaled ; amer; tariq

وليس كل حقل في سطر

#2 Ahmed Zain

Ahmed Zain

    مشرف

  • فريق الإشراف
  • 261 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 September 2008 - 11:26 AM

السلام عليكم ورحمة الله وبركاته
اخي فالله
بعد التحية
اتمني ان تجد ضالتك فهذه السطور المتواضعه
CREATE OR REPLACE FUNCTION get_name_auth
RETURN CHAR
IS
x VARCHAR2 (1000);
BEGIN FOR i IN (SELECT title, NAME
FROM titles, titleauths, authors
WHERE titles.titleno = titleauths.titleno AND titleauths.authno = authors.authno)
LOOP
IF x IS NULL
THEN
x := i.title || ' \ ' || i.NAME;
ELSE
x := x || ' ; ' || i.NAME;
END IF;
END LOOP;

RETURN x;
END;

SELECT get_name_auth FROM DUAL


وفقك الله الى ماتحب ويرضي

اللهم صلي وسلم على نبينا محمد وعلى اله وصحبه اجمعين الى يوم الدين سلام طيبا مباركا فيه


يا ابن آدم:انما انت أيام...كلما مضى منك يوم مضى بعضك العمر يمضي ولا تدري متى ينتهي فهل عملت لآخرتك؟؟؟


﴿ كتبت وقد أيقنت يوم كتابتي بأن يدي تفنى ويبقى كتابها فإن كتبت خيراً ستجزى بمثله وإن كتبت شراً عليها حسابها ﴾

 




Ahmed Zain El-Abedeen Mohamed
Senior Oracle Developer


My C.V & Cover Latter


لا يؤخذ العلم من أربعة ويؤخذ ممن سوى ذلك ولا يؤخذ من سفيه ولا من صاحب هوى ولا ممن يكذب في أحاديث الناس ولا ممن لا يعرف ما يحدث به من حيث المصادر والاختيار


#3 mha_666

mha_666

    عضو

  • الأعضــاء
  • 7 مشاركة

تاريخ المشاركة 21 September 2008 - 03:26 PM

بامكانك ايضا ان تقوم بعملها باستخدام SQL

select p.title, substr(max(substr(sys_connect_by_path (p.name,'; '),2)),1,60)
from (select title,
name,
row_number() over (partition by title order by title, name) rn
from (Select title,name from titles,titleauths,authors Where titles.titleno=titleauths.titleno and Titleauths.authno=authors.authno) x ) p

start with p.rn = 1
connect by p.rn = prior p.rn + 1 and prior p.title = p.title
group by title;


أول لتخفيف الكود بامكانك عمل view من الاستعلام المستخدم من قبلك
كالتالي
create view title1 as Select title,name from titles,titleauths,authors Where titles.titleno=titleauths.titleno and Titleauths.authno=authors.authno;

لتصبح جملة الاستعلام كالتالي
select p.title, substr(max(substr(sys_connect_by_path (p.name,'; '),2)),1,60)
from (select title,
name,
row_number() over (partition by title order by title, name) rn
from title1) p

start with p.rn = 1
connect by p.rn = prior p.rn + 1 and prior p.title = p.title
group by title;