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

ترتيب الأعمدة بتسلسل أبجدى على حسب الارقام


ebnalqym

Recommended Posts

عندي جدول فية البيانات كالتالي

1 A
1 B
1 C
2 D
2 E
3 F

المطلوب عمل جملة سلكتاية (بالسكول) ويكون الناتج بهذة الطريقة؟؟
1 A+B+C
2 D+E
3 F
بمعنى كل القيم في العمود التاني اللى واخدة قيمة 1 يكونوا مع بعض
واللى قيمتهم 2 يتجمعوا مع بعض
وهكذا ....

تم تعديل بواسطة hanyfreedom
تم تعديل عنوان الموضوع ليدل على مضمونه .
رابط هذا التعليق
شارك

ده اللى مفروض اللى عندك دلوقتى :-

CREATE TABLE oug ( col1 NUMBER , col2 CHAR(1));
insert into oug values (1,'A');
insert into oug values (1,'B');
insert into oug values (1,'C');
insert into oug values (2,'D');
insert into oug values (2,'E');
insert into oug values (3,'F');
COMMIT;
SELECT * FROM oug;



طيب الشكل الاخير اللى انت عاوزه ، مفروض يبقى شكله ايه بالظبط ؟
اوصفه بوضوح أكثر :unsure:

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

السلام عليكم
بص انا هاجاوبك على a,b,c وانت طبقها بقى على الباقي

 select distinct(e.col1), e.col2||'+' || b.col2||'+'||c.col2 from oug e ,oug b,oug c
where
e.col2 <>b.col2
  and b.col2 <> c.col2
and e.col2 <> c.col2
 and e.col1=1
 and e.col1=b.col1
 and b.col1=c.col1
and rownum=1;


  COL1 E.COL
------ -----
    1 A+B+C


شكرا
OCP DEVELOPER
Junior Oracle developer

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

فقط قبل الاجابة على أخى الكريم ( ebnalqym )
أريد فقط ان اقول لك .... عند طلبك لكود يظهر لك output معين بالانجليزية ..... كما طلبت .... فأرجو ان تحدد عليه عند كتابتك له هنا فى المنتدى و من ثم أضغط على زر ال كود # حتى يظهر بالشكل الصحيح و الذى من المفترض انك تريده .

بالنسبة لأخى العزيز ( gero )

ان بعد تنفيذ كودك ظهر الناتج كما يلى :-

SQL>  select distinct(e.col1), e.col2||'+' || b.col2||'+'||c.col2 from oug e ,oug b,oug c
 2  where
 3  e.col2 <>b.col2
 4  and b.col2 <> c.col2
 5  and e.col2 <> c.col2
 6  and e.col1=1
 7  and e.col1=b.col1
 8  and b.col1=c.col1
 9  and rownum=1;

  COL1 E.COL
---------- -----
	 1 B+C+A



و ليس كما ذكرت فى ال output الذى وضعته ..... ولكن والله هذا مجهود عظيم ..... بارك الله فيك

و أتمنى يا أخ ebnalqym ان يكون هذا الكود هو ما تريد :-

SELECT e.col1, c.col2 || '+' || e.col2 || '+' || b.col2
 FROM oug e, oug b, oug c
WHERE e.col2 <> b.col2 AND b.col2 <> c.col2 AND e.col2 <> c.col2 AND e.col1 = 1 AND e.col1 = b.col1 AND b.col1 = c.col1 AND ROWNUM = 1
UNION
SELECT e.col1, b.col2 || '+' || e.col2
 FROM oug e, oug b
WHERE e.col2 <> b.col2 AND e.col1 = 2 AND e.col1 = b.col1 AND ROWNUM = 1
UNION
SELECT e.col1, b.col2
 FROM oug e, oug b
WHERE e.col1 = 3 AND e.col1 = b.col1 AND ROWNUM = 1
/



حيث سيخرج الناتج كالتالى :-

	  COL1 C.COL
---------- -----
	 1 A+B+C
	 2 D+E
	 3 F



فى حال وجود اى شىء غامض فى الكود ... فأرجو منك ان لا تتردد فى أستفسارك عنه .

مع تمنياتى لك بالتوفيق

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

السلام عليكم
جزاكم الله خيرا على الاهتمام
ولكن الاخ الكريم
الاجابة التي ارسلتها تعتمد على ان البيانات الموجودة ثابتة ولا تتغير
بفرض ان احنا زودنا
Z 1
X 2
G 3
K 2
L 1
فإن الجملة لا تعمل
ارجو الافادة

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

الأخ هاني شكرا على التوضيح بس انا والله عملتها كده واشتغلت معايا جايز بقى غلط في ترتيب ال row عندي :unsure:

الأخ ebnalqym اعتقد مافيش حاجة ثابتة لان علامة الجمع دي مش جمع دي منظر فلازم معاها || وبالتالي حتى لو ضفت z او اي حاجة

انت مضطر تضيف || للكود فالكود هايختلف الا لو عايز تجمع بجد فالجواب هايختلف طبعا
OCP DEVLOPER
JUNIOR ORACLE DEVELOPER

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

  • بعد 1 سنة...

اخوان محتاج مساعده
اريد اعرف شلون ارتب لعبه تسلسل من 12 فريق كره القدم على 3 احتمالات
يعني اكو لعبه من 12 فريق اريد اعمل ترتيب اللعبه على كل الاحتمالات
ممكن تساعدوني

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

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

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

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

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

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

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

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