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

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

صورة
- - - - -

إخواني ممكن تساعدوني في مشكلة Query


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

#16 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 18 June 2009 - 01:08 PM

السلام عليكم

الخطأ فى كلمة view

create VIEW viwe_employee as select employee.employeeid,employee.employeejob,employee.employeename,sales.salesid
from Employee,sales where employee.employeeid=sales.employeeid;


يمكنك مراجعة هذا الرابط بالمنتدى عن اوامر ال VIEW

إضغط هنا

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#17 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 18 June 2009 - 01:27 PM

جزاك الله ألف خير اخوي أمجد ...

الظاهر كتبت الأمر بسرعة وبدون تركيز لأني كنت مستعجلة :)

#18 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 20 June 2009 - 07:49 PM

اخواني عملت تريجر لأول مرة في حياتي والمصيبة انه ما رضى يطلع من نطاق التريجر يعني مثلا
create or replace triggrt count-tg
after insert on reservation
for each row
begin
update equipment
set rentalcount=rentalcount+1
where equipmentid=:new.equipmentid;
end;

وبس وظل الترقيم التسلسلي للأوركل مستمر يعني اريد ارجع الى SQL prompt ????!!! ما يرضى حاولت بكل الأوامر ما في فايدة

انتظر الرد ارجوكم









ا

#19 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 20 June 2009 - 10:00 PM

لمن كتب التريجر حدث معي ذلك !!!

[يسار][/يسار] create Or replace Trigger count_Tg
2 after insert on Reservation
3 For each row
4 Begin
5 update equipment
6 set rentalcount=rentalcount+1
7 where equipmentid=:New.equipmentid;
8 End;
9
10
11
12
13
14 end;
15
16
17
18
19
وهكذا ... وعمل stuck

#20 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 21 June 2009 - 06:58 AM

مرحبا اخواني ما رديتوا علي أنتظركم .. :)

واجهتني مشكلة ثانية query
المطلوب عرض عدد المعدات التي تم استئجارها من قبل الزبون : Give the number of equipment rented by each customer

the Query is :

[يسار][/يسار]SQL> select count(equipmentid),customerid
2 from equipment,reservation
3 where equipment.equipmentid=reservation.equipmentid
4 group by customerid;
select count(equipmentid),customerid
*
ERROR at line 1:
ORA-00918: column ambiguously defined

شو معنى هذا ال error ??

اختكم : sunfoor

#21 Ahmed_oracle

Ahmed_oracle

    عضو نشط

  • الأعضــاء
  • 240 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 21 June 2009 - 11:47 AM

الخطأ يعنى وجود نفس اسم العمود فى الجدولين ... ولذلك يجب وضع مميز قبل اسم العمود فى الامر المكتوب

ORA-00918: column ambiguously defined
Cause: A column name used in a join exists in more than one table and is thus referenced ambiguously. In a join, any column name that occurs in more than one of the tables must be prefixed by its table name when referenced. The column should be referenced as TABLE.COLUMN or TABLE_ALIAS.COLUMN. For example, if tables EMP and DEPT are being joined and both contain the column DEPTNO, then all references to DEPTNO should be prefixed with the table name, as in EMP.DEPTNO or E.DEPTNO.
Action: Prefix references to column names that exist in multiple tables with either the table name or a table alias and a period (.), as in the examples above.



http://ora-918.ora-code.com/

يمكن التعديل كالتالي

select count(E.equipmentid),R.customerid
from equipment E ,reservation R
where equipment.equipmentid=reservation.equipmentid
group by customerid;


or

select count(equipmentid),customerid
from reservation group by customerid;

تم التعديل بواسطة Ahmed_oracle, 21 June 2009 - 11:53 AM.


#22 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 21 June 2009 - 07:05 PM

مشكور اخوي أحمد على الرد ..
يعني كل زبون كم مرة استأجر معدة .صح؟

طيب اخوي احمد ما شوفت لي مشكلة triggrer ارجوك اريد الحل في اقرب وقت ممكن

انتظر الحل لأن عندي تريجير ثاني اريد أعمله.. فلازم اشغل الول حتى اقدر اشغل الثاني

sunfoor

#23 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 21 June 2009 - 08:18 PM

يجب بعد كتابة اوامر انشاء التريجير .... يجب كتابة حرف ال semi column ;
وكتابة حرف /
للرجوع لعلامة ال
sql)


وان تظهر رسالة
Trigger created.
للدلاله على نجاح عملية انشاء التريجير

تم كتابة الاوامر على اسماء الاعمدة والجداول التى انشأتها فى بداية المشروع
يمكنك تعديل هذه الاسماء طبقا لما لديك من اسماء جديده
يجب حذف ارقام الاسطر من المثال التالى 1-2-3-4-5-6-7-8-9
SQL> create Or replace Trigger count_Tg
2 after insert on EQUIPMENT_RESERVATION
3 For each row
4 Begin 5 update equipment
6 set rental_counts = rental_counts + 1
7 where equipment_id = :new.equipment_id ;
8 end;
9 /

Trigger created.


امر لمعرفة العداد فى الجدول وهو يساوى = 1 قبل تنفيذ امر اضافة سجل جديد RENTAL_COUNTS
-------------------------------------------------------------
SQL> select * from EQUIPMENT; EQUIPMENT_ID EQUIPMENT_TYPE E RENTAL_COUNTS
------------ -------------- - -------------
123 11 0 1


أمر اضافة سطر لحجز معدة ( وليس ايجار فعلي) فى جدول الحجوزات
-------------------------------------------------------
SQL> insert into EQUIPMENT_RESERVATION values ( 113,1,123,'11-jun-2009','22-jun-2009',1) ;

1 row created.


الاستعلام عن القيمة فى العداد بعد تنفيذ امر الاضافة اصبح = 2
------------------------------------------------------------------------------------
SQL> select * from EQUIPMENT; EQUIPMENT_ID EQUIPMENT_TYPE E RENTAL_COUNTS
------------ -------------- - -------------
123 11 0 2

-------------------------------------------------

يمكن مراجعة هذا الرابط

إضغط هنا : الدرس الثاني عشر: انشاء التريجر على قاعدة البيانات, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#24 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 21 June 2009 - 09:50 PM

جزاك الله ألف خير ......اخوي امجد

اشتغل التريجير وجربته والحمد لله تمام

ألحين عملت تريجير ثاني وهو الي عطيتني اياه سابقا ولكن لم يشتغل يعين ظهر لي error
Trggier
[يسار][/يسار]SQL> select * from sales_equipment;

SALESID EQUIPMENTID NO_OF_EQUIPMENT SALES_CHARGE
---------- ----------- --------------- ------------
500 111 1 7
501 112 2 10
502 113 2 15

SQL> create or replace trigger equipment_sold
2 After insert or delete ON sales_equipment
3 For each row
4 Begin
5 If inserting then
6 update equipment
7 set equipmentstatus='Sold'
8 where equipmentid=:New.equipmentid;
9 ElSIF Deleting then
10 update equipment
11 set equipmentstatus='Cancel'
12 where equipmentid=:old.equipmentid;
13 endif;
14 end;
15 /

Warning: Trigger created with compilation errors.

SQL> show err;
Errors for TRIGGER EQUIPMENT_SOLD:

LINE/COL ERROR
-------- -----------------------------------------------------------------
11/4 PLS-00103: Encountered the symbol ";" when expecting one of the
following:
if

#25 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 22 June 2009 - 12:37 AM

الخطأ فى كلمة endif المتصلة
يتم استبدالها ب
end if
وضع مسافة بين ال end if
1  create or replace trigger equipment_sold
2 After insert or delete ON SALES_EQUIPEMENTS
3 For each row
4 Begin 5 If inserting then
6 update equipment
7 set EQUIPMENT_STATUS='S'
8 where EQUIPMENT_ID=:New.EQUIPMENT_ID;
9 ElSIF Deleting then
10 update equipment
11 set EQUIPMENT_STATUS='C'
12 where EQUIPMENT_ID=:OLD.EQUIPMENT_ID;
13 end if;
14* end;
SQL> /

Trigger created.

SQL>

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....


#26 sunfoor

sunfoor

    مشترك

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

تاريخ المشاركة 22 June 2009 - 08:00 PM

:unsure: أشتغل التريجر بارك الله فيك اخي العزيز
مشكور وايد وجعله الله في ميزان حسناتك ان شاء الله .



شكرا جزيلا
أختك : sunfoor