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

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

صورة
- - - - -

ما هو خطأ هذا الكود ..


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

#1 STAROSTA

STAROSTA

    عضو

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

تاريخ المشاركة 04 May 2010 - 02:09 PM

SELECT ersalia.no, ersalia.class, ersalia.name, ersalia.stat, ersalia.unit, ersalia.loc,come.cdate,come.medical,come.garaba
from ersalia,come,out
WHERE NVL(ersalia.no,0 )=NVL(:pno, NVL(ersalia.no, 0) )
AND NVL(ersalia.class, 'w')=NVL(:pclass, NVL(ersalia.class, 'w'))
AND NVL(ersalia.name, 'w') like NVL(:pname, NVL(ersalia.name, 'w'))
AND NVL(ersalia.stat, 'w')=NVL(:pstat, NVL(ersalia.stat, 'w'))
AND NVL(ersalia.unit, 'w')=NVL(:punit, NVL(ersalia.unit, 'w'))
AND NVL(ersalia.loc, 'w')=NVL(:ploc, NVL(ersalia.loc, 'w'))
and nvl(come.cdate,sysdate) between nvl(:pfrom,nvl(come.cdate,sysdate)) and nvl(:Pto,nvl(come.cdate,sysdate))
and ersalia.no=come.no
and ersalia.no=out.no

أريد عمل إستعلام من ثلاثة جداول ersalia - out - come

الجدول الأول خاص ببيانات المريض
الثاني خاص ببيانات الدخول
الثالث خاص ببيانات المغادرة ..

تربط جميعا عن طريق الحقل no وهو موجود في الجداول الثلاثة ..

أريد عند عمل إستعلام عن صفة معينة في الجدول الأول أو تاريخ الدخول ((في الجدول الثاني)) أو ((تاريخ المغادرة)) في الجدول الثالث يظهر لي مريض أو أثر تنطبق عليهم الصفة ..

حسب الكود السابق النتيجة تكون سليمة عندما يكون مفتاح البحث من الجدول الأول ولا تظهر قيمة إذا ان المفتاح في الجدول الثاني ..

الكود السابق لتقريب الفكرة وليس بالضرورة الكود السليم .. ما أريده في النهاية هو إستعلام عن معلومة أو أكثر من ثلاثة جداول مرتبطة



شئ آخر

أريد عمل حقل أكتب فيه رقم المريض وأضغط على زر يعطي رسالة عن تواجد المريض من عدمه ..

كتبت الكود التالي في التريجر

declare
n number
begin
if :no=any(select * from ersalia) then n:=show_alert('a') else
n:=show_alert('b') d


no: هو الحقل المعني

يعطي رسالة خطأ تقول أن ((ANY)) تعمل داخل جمل SQL فقط ..

تم التعديل بواسطة STAROSTA, 04 May 2010 - 02:15 PM.


#2 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,871 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 04 May 2010 - 04:39 PM

السلام عليكم
بالسؤال الأول جرب استخدام Or بدلا من And.

والسؤال الثاني:
Select Count(*)
  Into dummy
  From Ersalia
 Where No = :Blk_1.No;
 
 If dummy = 0 Then
  Message('No Found');
  Message('No Found');
  Raise Form_Trigger_Failure;
 End If;

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist

 


#3 STAROSTA

STAROSTA

    عضو

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

تاريخ المشاركة 06 May 2010 - 08:53 AM

روعة أستاذي .. سلمت على حلك للمشكلة الثانية ..

لكن الأولى يبدو أنني لم أشرحها بشكل واضح ..

إليكم هذا الكود الإفتراضي



SELECT a.x,b.x,c.x
from a,b,c
where NVL(a.x, 'w')=NVL(:pa, NVL(a.x, 'w'))
And NVL(b.x, 'w')=NVL(:pb, NVL(b.x, 'w'))
And NVL(c.x, 'w')=NVL(:pc, NVL(c.x, 'w'))
And NVL(a.x, 'w')= NVL(b.x, 'w')
And NVL(b.x, 'w')= NVL(c.x, 'w')
[size="5"][/size

]

الجداول هي A-B-C

كل جدول يحتوي على عمود ْX واعمدة أخرى .. أريد ربطها جميعا عن طريق العمود X

في حالة الإستعلام عن معلومة خاصة في أحد الجداول يرجع لي معلومات الجداول الثلاثة بناء على الربط ..

#4 vaguezoro

vaguezoro

    عضو

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

تاريخ المشاركة 15 May 2010 - 02:35 AM

ممكن تجرب بالشكل ده
select a.x, b.x,c.x from a,b,c
where a.x=b.x
and b.x=c.x



#5 Mahmoud Shahryar

Mahmoud Shahryar

    عضو

  • عضوية غير مفعلة
  • 27 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 27 May 2010 - 06:10 PM

ممكن فعلا تجرب كود الأستاذ Vaguezoro بس ياريت لو ماشتغلتش تفهمنا فعلا إنت عايز إيه بالظبط لإن كل الردود بناء على الجزء اللي فهمناه وياريت لو ترفع جزء من الشغل ده بحيث يمكن إكتشاف أخطاء أخرى ممكن تكون السبب في عدم نجاح الكود
شكراً

#6 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,871 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 28 May 2010 - 12:09 AM

روعة أستاذي .. سلمت على حلك للمشكلة الثانية ..

لكن الأولى يبدو أنني لم أشرحها بشكل واضح ..

إليكم هذا الكود الإفتراضي



SELECT a.x,b.x,c.x
from a,b,c
where NVL(a.x, 'w')=NVL(:pa, NVL(a.x, 'w'))
And NVL(b.x, 'w')=NVL(:pb, NVL(b.x, 'w'))
And NVL(c.x, 'w')=NVL(:pc, NVL(c.x, 'w'))
And NVL(a.x, 'w')= NVL(b.x, 'w')
And NVL(b.x, 'w')= NVL(c.x, 'w')
[size="5"][/size

]

الجداول هي A-B-C

كل جدول يحتوي على عمود ْX واعمدة أخرى .. أريد ربطها جميعا عن طريق العمود X

في حالة الإستعلام عن معلومة خاصة في أحد الجداول يرجع لي معلومات الجداول الثلاثة بناء على الربط ..



السلام عليكم
أخي ... الجزئية التي طرحتها غير واضحه..
ارجو توضيح مطلبك بمثال عملي لكي يتم فهم المطلوب وحله ان شاءالله...
موفق

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist