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

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

صورة
- - - - -

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


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

#1 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 27 June 2007 - 06:49 PM

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


قمت بكتابة مجموعة من جمل الـ 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;

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

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#2 mostafa_guide

mostafa_guide

    عضو

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

تاريخ المشاركة 27 June 2007 - 08:09 PM

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

#3 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 28 June 2007 - 02:58 PM

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


#4 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 28 June 2007 - 03:56 PM

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


قمت بكتابة مجموعة من جمل الـ 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

#5 MMA

MMA

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,019 مشاركة
  • الاسم الأول:Mostapha
  • اسم العائلة:Abd El-Salam
  • البـلـد: Country Flag
  • المنصب الحالي:المؤسسة المصرية لتبسيط العلوم - عضو مؤسس - مستشار تقني

تاريخ المشاركة 29 June 2007 - 03:21 PM

أخي hanyfreedom الكريم

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


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


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

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



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

مهندس/ مصطفي محمود عبد السلام   
العضو المؤسس بالمؤسسة المصرية لتبسيط العلوم
والمستشار التقني

(برمجيات - نظم معلومات - شبكات)

.

 

( 01098570165 )

.

.

.

( MMA_Programmer@Yahoo.com )

 


#6 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 29 June 2007 - 03:46 PM

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

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



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

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


#7 Masrico

Masrico

    مشترك

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

تاريخ المشاركة 29 June 2007 - 04:33 PM

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

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

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




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

SCJP 1.4 - SCWCD 1.4 - OCP Developer 9i


#8 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 29 June 2007 - 07:16 PM

أخى العزيز Masrico

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



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


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

و بالتوفيق


#9 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 29 June 2007 - 10:34 PM

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

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

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




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


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

من هنا

#10 eng_s_84

eng_s_84

    عضو

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

تاريخ المشاركة 01 July 2007 - 09:01 PM

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


قمت بكتابة مجموعة من جمل الـ 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;

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


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