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

ما الخطأ في هذا الكود


MMA

Recommended Posts

إخواني الكرام ، تحية طيبة وبعد ،


قمت بكتابة مجموعة من جمل الـ SQL التالية ودائماً تقوم بإرجاع رسالة تفيد بعدم إرتجاع
أي سجـل مـن السجلات ، خصوصاً عنــد التعامل مع RowNum ، فهل هناك خطأ غير
منطقي قمت بإدراجة . مـــع العلم أن هذه الأكواد أخذتها من هذا المنتدي الكريم ، وجمل
وأعضاء المنتدي أكدو لي ولأصدقائي بالمنتدي بأنه يخرج معلومات ، الإستعلامات
هي :

1- إسترجاع مجموعة معينة من السجلات حسب رقم السجل :

Select * From Emp Where RowNum Between 20 And 70;
Select * From Emp Where RowNum >= 1000 And RowNum <= 1900;


2- إسترجاع سجل معين حسب ترتيب السجل :

Select *
From Emp
Where RowNum = 17;



فتقوم بإرجاع رسالة ( لم يتم تحديد صفوف )

ولكن عند كتابة الكود التالي قام بإرجاء مجموعة صفوف عادية :

Select *
From Emp
Where RowNum <= 20;



ما هو حل هذه المشكلة ؟

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


select rownum,id from(
select e.id id
from scott.employee e
order by 1)
where rownum<5
لا سترجاع اول خمس موظفين


Hany>select rownum,id from(
 2  select e.id id
 3  from scott.employee e
 4  order by 1)
 5  where rownum<5;
from scott.employee e
	   *
ERROR at line 3:
ORA-00942: table or view does not exist

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


إخواني الكرام ، تحية طيبة وبعد ،


قمت بكتابة مجموعة من جمل الـ SQL التالية ودائماً تقوم بإرجاع رسالة تفيد بعدم إرتجاع
أي سجـل مـن السجلات ، خصوصاً عنــد التعامل مع RowNum ، فهل هناك خطأ غير
منطقي قمت بإدراجة . مـــع العلم أن هذه الأكواد أخذتها من هذا المنتدي الكريم ، وجمل
وأعضاء المنتدي أكدو لي ولأصدقائي بالمنتدي بأنه يخرج معلومات ، الإستعلامات
هي :

1- إسترجاع مجموعة معينة من السجلات حسب رقم السجل :

Select * From Emp Where RowNum Between 20 And 70;
Select * From Emp Where RowNum >= 1000 And RowNum <= 1900;


2- إسترجاع سجل معين حسب ترتيب السجل :

Select *
From Emp
Where RowNum = 17;



فتقوم بإرجاع رسالة ( لم يتم تحديد صفوف )

ولكن عند كتابة الكود التالي قام بإرجاء مجموعة صفوف عادية :

Select *
From Emp
Where RowNum <= 20;



ما هو حل هذه المشكلة ؟


أخى الكريم MMA

التوضيح لمشكلتك التى تحدث لك هى فى هذه الوصلة :-

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

أخي hanyfreedom الكريم

أشكرك كثيراً علي الرد والإهتمام


أنا تعلمت Oracle من هذا المنتدي الكريم ، وهذه الطريقة بالزات قد أخذتها من إحدي مشاركاتك بالمنتدي ، فأشكرك كثيراً علي هذه المعلومة القيمة.


ولكن سؤالي واضح

الإستعلام لا يعرض لي أي نتائج ، رغم أن هذا الإستعلام قد أخذتة من هذا المنتدي ومن إحدي مشاركاتك



وشكراً كثيراُ علي ردك هذا

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

خلاص انا لاقيتلك الحل ......... هذا الكود سيعرض على سبيل المثال الصف ال سابع لجدول Departments

select * From
(select rownum Row_N,departments.* from departments)
where Row_n=7;




لكن اخى انا صراحتاً لا أتذكر انى قمت بعمل هذا الكود من قبل - او عمل ما يشبه - و على اى حال أتمنى ان تكون المعلومة وصلت لك بسهولة .

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

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

بسم الله الرحمن الرحيم

بصفة عامة الكود كالتالى
[/code]
select rownum,last_name
from( select salary
from employees
order by salary)
where rownum<10



الحقيقة نفس المشكلة تقابلنى عندما اطلب صف بعينه مثلا خامس أعلى مرتب و كان هناك صفين لهما نفس المرتب ونفس الترتيب "الخامس" فى هذه الحالة لا يرجع لى أى بيانات و لا أعرف السبب !!!!!!!!!!!!!




متأسف الكود كالتالى
select rownum,last_name
from( select salary
from employees
order by salary desc)
where rownum=5
رابط هذا التعليق
شارك

أخى العزيز Masrico

لكى تحضر بيانات الصف الخامس من جدول employees قم بكتابة التالى :-


select*from
(select rownum RN , employees.* from employees)
where RN = 5;



و لكن لكى تأتى بجميع بيانات الموظف الذى يملك خامس أعلى مرتب ..... فهذه لها كود أنا لا أعرفه ، ولكن أول ما هعرفه هحطه هنا ... أن شاء الله .

و بالتوفيق

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


بسم الله الرحمن الرحيم

بصفة عامة الكود كالتالى
[/code]
select rownum,last_name
from( select salary
from employees
order by salary)
where rownum<10


الحقيقة نفس المشكلة تقابلنى عندما اطلب صف بعينه مثلا خامس أعلى مرتب و كان هناك صفين لهما نفس المرتب ونفس الترتيب "الخامس" فى هذه الحالة لا يرجع لى أى بيانات و لا أعرف السبب !!!!!!!!!!!!!




متأسف الكود كالتالى
select rownum,last_name
from( select salary
from employees
order by salary desc)
where rownum=5[/size]


[size=5]أخى بالنسبة لما تريده فهو على هذا الرابط ، وهو الحل اللى انت عاوزه بس باستخدام دالة فى السكويل مش منتشره أوى انا عن نفسى مش عارفها على اى حال هذا هو الرابط ادخل عليه و شوف الحل :-[/size]

[color=#CC6600][size=6]من هنا[/size][/color]
رابط هذا التعليق
شارك


إخواني الكرام ، تحية طيبة وبعد ،


قمت بكتابة مجموعة من جمل الـ SQL التالية ودائماً تقوم بإرجاع رسالة تفيد بعدم إرتجاع
أي سجـل مـن السجلات ، خصوصاً عنــد التعامل مع RowNum ، فهل هناك خطأ غير
منطقي قمت بإدراجة . مـــع العلم أن هذه الأكواد أخذتها من هذا المنتدي الكريم ، وجمل
وأعضاء المنتدي أكدو لي ولأصدقائي بالمنتدي بأنه يخرج معلومات ، الإستعلامات
هي :

1- إسترجاع مجموعة معينة من السجلات حسب رقم السجل :

Select * From Emp Where RowNum Between 20 And 70;
Select * From Emp Where RowNum >= 1000 And RowNum <= 1900;


2- إسترجاع سجل معين حسب ترتيب السجل :

Select *
From Emp
Where RowNum = 17;



فتقوم بإرجاع رسالة ( لم يتم تحديد صفوف )

ولكن عند كتابة الكود التالي قام بإرجاء مجموعة صفوف عادية :

Select *
From Emp
Where RowNum <= 20;



ما هو حل هذه المشكلة ؟



السلام عليكم
المشكلة ببساطة انه مفيش عدد كافى من الصفوف لعض نتائج
لو قللت العدد بتاع الشرط هيعرض نتائج
ذى اخر مثال انت عمله :(
رابط هذا التعليق
شارك

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

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

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

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

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

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

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