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

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


STAROSTA

Recommended Posts

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
رابط هذا التعليق
شارك

السلام عليكم
بالسؤال الأول جرب استخدام 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;

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

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

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

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



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

]

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

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

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

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

  • بعد 2 أسابيع...
  • بعد 2 أسابيع...

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

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


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

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

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



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

]

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

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

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




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

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

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

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

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

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

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

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