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

أريد عمل Update أو Trigger لاضافة رصيد من جدول الى جدول أخر أو العكس


tarekmohammad

Recommended Posts

السلام عليكم
اخي الكريم قابلت نفس المشكلة من قبل و قام الاعضاء بمساعدتي في الموضوع التالي
انظر الي الرابط التالي وان شاء الله تفهم موضوع داتبيس تريجر

مشكلة فاتورة المبيعات و التأثير على رصيد الصنف بالمخزن

ان شاء الله تجد ضالتك

تم تعديل بواسطة Wise
رابط هذا التعليق
شارك

جزاك الله كل خير أخى الكريم wise بفضل الله وجدت ضالتى
لكن هناك مشكلتان أمامى هما
الأولى:
عندما أضيف كمية جديدة لصنف معين فى جدول الأضافة (addition) تتم أضافة الكمية لجميع الأصناف فى جدول الأصناف(medicine) حيث أنه مشروع صيدلية صغير
الثانية:
عندما اصرف كمية معينة مثلا 50 قطعة لصنف معين فى جدول الصرف(spend) يتم صرف كل الكمية لهذا الصنف من جدول الأصناف(medicine)
وهذه هى triggers التى قمت بكتابتها

هذا التريجر لاضافة الرصيد تلقائيا من جدول الأضافة الى جدول الأدوية


CREATE OR REPLACE TRIGGER ADDITION AFTER UPDATE ON ADDITION
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN IF UPDATING THEN
UPDATE MEDICINE
SET QUANTITY=NVL(QUANTITY,0)+NVL(:NEW.QUANTITY,0)
WHERE MED_ID=:NEW.MED_ID;
END IF;
END;
SQL][/sq[l]
هذا التريجر لصرف الرصيد تلقائيا من جدول الأدوية عندما يصرف من جدول الصرف
CREATE OR REPLACE TRIGGER SPEND AFTER UPDATE ON SPEND 
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN IF UPDATING THEN 
UPDATE MEDICINE
SET QUANTITY=NVL(QUANTITY,0)-NVL(:NEW.QUANTITY,0)
WHERE MED_ID=:NEW.MED_ID;
END IF;
END;

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

السلام عليكم
اظن انك لم تحدد الحقل الذي عند التحديث فيه سوف يتأثر بمثابته رصيد الصنف في المخزن

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


CREATE OR REPLACE TRIGGER ADDITION AFTER UPDATE FOR QUANTITY ON ADDITION 
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN IF UPDATING THEN 
UPDATE MEDICINE
SET QUANTITY=NVL(QUANTITY,0)+NVL(:NEW.QUANTITY,0)
WHERE MED_ID=:NEW.MED_ID;
END IF;
END;

تم تعديل بواسطة Wise
رابط هذا التعليق
شارك

السلام عليكم أخى الكريم

كتبت الكود بعد التعديل الذى قمت به وظهرت لى هذه الرسالة ولا أعرف معناها



ERROR at line 1:
ORA-00969: missing ON keyword

تم تعديل بواسطة tarekmohammad
رابط هذا التعليق
شارك

السلام عليكم أخى الكريم وأرجو أن لا تنزعج منى فأنا مبتدأ وأحتاج الى مثل مشاركاتك

كتبت الكود بعد التعديل الذى قمت به وظهرت لى هذه الرسالة ولا أعرف معناها



ERROR at line 1:
ORA-00969: missing ON keyword

تم تعديل بواسطة tarekmohammad
رابط هذا التعليق
شارك

السلام عليكم أخى الكريم وأرجو أن لا تنزعج منى فأنا مبتدأ وأحتاج الى مثل مشاركاتك

كتبت الكود بعد التعديل الذى قمت به وظهرت لى هذه الرسالة ولا أعرف معناها



ERROR at line 1:
ORA-00969: missing ON keyword

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

السلام عليكم أخى الكريم

بالنسبة لرسالة الخطأ فى الكود بعد التعديل فكانت فى كلمة for فبدلا منها of ومع ذلك لم تحل المشكلة

وهذا ال dump الذى طلبته منى

pharmacy.rar

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

السلام عليكم ورحمة الله وبركاته
بعد التحية
اخواني فالله
احب ان اتوجه بالشكر الى العضو المحترم الخلوق wise لحرصه على مساعدت الاعضاء ونشر العلم
وكما قال رسول الله صلي الله عليه وسلم
خيركم من تعلم العلم وعلمه
ياريت العضو الزميل tarekmohammad التحلي بالصبر وعدم تكرار الطلب اكثر من مره
حتي لا تسبب مضايقة لمن يساعدك اكتب طلبك اترك له الوقت لكي يساعدك فالكل يعمل على ذلك
وكن متيقن انه لن يبخل عليك احد بالرد ان شاء الله ولكن اعلم لو تاخر الرد سيكون لظروف خارج اردة الشخص الذي يساعدك "عمل او ظروف خاصه"
ماشي ياريس
وفقكم الله الى ماتحبون ويرضي

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

السلام عليكم
الخطأ كانت في كتابة الكود حيث المفروض تكتب of وليس for

CREATE OR REPLACE TRIGGER ADDITION AFTER UPDATE of QUANTITY ON ADDITION
FOR EACH ROW
BEGIN IF UPDATING THEN
UPDATE MEDICINE
SET QUANTITY=NVL(QUANTITY,0)+NVL(:NEW.QUANTITY,0)
WHERE MED_ID=:NEW.MED_ID;
END IF;
END;
/

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

السلام عليكم أخى أحمد زين

جزاك الله خير على النصيحة

السلام عليكم أخى محمود

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

واذا لم أمكن فلا يكلف الله نفسا الا وسعها

تم تعديل بواسطة tarekmohammad
رابط هذا التعليق
شارك

السلام عليكم اخي
اليك ملف التريجر الخاص بمشروع المخازن
و لكن حتى يتسنى لك فهم التريجر يجب قراءة التحيل حتي تسطتيع فهم الكود المكتوب

t_update_qty_in_store.txt

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

الاخ محمود شكرا ليك كتير ..والله انا ممنون جدا ليك لكن اصبر علي شوية ..معليش حا اغلبك
المشكلة الثانية ..عندما قمت بفتح الازرار وجدتها جميعا من غير كود ... ولا زر من الازرار فيه كود..
ارجو منك اخي ان لم كن قد اثقلت عليك ان تقوم برفع الملف من جديد
ولك مني جزيل الشكر
والله بالجد انا محتاج لهذا البرنامج لذلك تجدني الح عليك بشدة
ربنا يزيدك علما ويجعل عملك هذا في ميزان حسناتك

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

الاخ محمود شكرا ليك كتير ..والله انا ممنون جدا ليك لكن اصبر علي شوية ..معليش حا اغلبك
المشكلة الثانية ..عندما قمت بفتح الازرار وجدتها جميعا من غير كود ... ولا زر من الازرار فيه كود..
ارجو منك اخي ان لم كن قد اثقلت عليك ان تقوم برفع الملف من جديد
ولك مني جزيل الشكر
والله بالجد انا محتاج لهذا البرنامج لذلك تجدني الح عليك بشدة
ربنا يزيدك علما ويجعل عملك هذا في ميزان حسناتك

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

السلام عليكم ورحمة الله وبركاته

أخى الكريم محمود جزاك الله كل خير

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

وعلى كلا فبارك الله فيك وزادك علمل ونفعا

أريد أن اعمل import لملف الdump الخاص بمشروعك فأنا أعرف كيف اعمل export داخل الcmd فقط

تم تعديل بواسطة tarekmohammad
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

أخى الكريم والعزيز محمود بفضل الله ثم بفضل مجهودك معى ووقوفك بجانبى وصلت الى ضالتى فى التريجر وهو يعمل الأن بدون أى مشاكل

فوالله وبالله وتالله أدعو لك من قلب صادق أن يغفر الله لك ويرحمك فى الدنيا والأخرة وأن يعلى درجاتك فى الدنيا والأخرة وأن تكون من أهل الفردوس فى الأخرة

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

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

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

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

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

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

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

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