الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مشكلة تكرار البيانات

Featured Replies

بتاريخ:

الاخوة الاعزاء ارجو المساعدة فى فهم الخطأ فى كود البحث هذا
لدى كود بحث على حسب الاسم وهو يعمل جيدا لكن المشكلة هى فى تكرارالبيانات حيث انه لدى فى الجدول مثلا 3 سجلات وعند الاستعراض فى الشاشة تظهر 9 سجلات ولو كان هناك سجلان فى الجدول يظهر 4 سجلات فى الفورم وهكذا افيدونى جزاكم الله خيرا وهذا هو الكود مع العلم اننى استعرض البيانات من جدولين

DECLARE
n varchar(50):=:TYPE_NAME;
CURSOR GETEMP IS
SELECT DISTINCT TREC.T_RECE,TISSU.T_ISSUE,TREC.TYPE_NO,TREC.TYPE_UNIT,TREC.D_DATE,TREC.REC_FROM,
TISSU.TYPE_NO,TISSU.TYPE_UNIT,TISSU.D_DATE,TISSU.ISSU_TO
FROM trec,TISSU
where TREC.TYPE_NAME =N AND TISSU.TYPE_NAME = n;
BEGIN
GO_BLOCK('trec,IISSU');
FIRST_RECORD;
OPEN GETEMP;
loop
FETCH GETEMP INTO :accc.T_REC,:accc.T_ISS,:accc.TYPE_NO ,:ACCC.TYPE_UNIT,:ACcc.D_DATE,:ACCC.REC_FROM,
:ACCC.TYPE_NO1,:ACCC.TYPE_UNIT1,:ACCC.D_DATE1,:ACCC.ISSU_TO;
EXIT WHEN GETEMP % NOTFOUND;

NEXT_RECORD;
END LOOP;
CLOSE GETEMP;

END;
:D

بتاريخ:

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

DECLARE
n varchar(50):=:TYPE_NAME;
CURSOR GETEMP IS
SELECT DISTINCT
               TREC.T_RECE,
               TISSU.T_ISSUE,
               TREC.TYPE_NO,
               TREC.TYPE_UNIT,
               TREC.D_DATE,
               TREC.REC_FROM,
               TISSU.TYPE_NO,
               TISSU.TYPE_UNIT,
               TISSU.D_DATE,
                TISSU.ISSU_TO
      FROM trec,TISSU
  where 
     TREC.TYPE_NAME =N 
  AND TISSU.TYPE_NAME =TREC.TYPE_NAME;
BEGIN
GO_BLOCK('trec,IISSU');
FIRST_RECORD;
OPEN GETEMP;
loop
FETCH GETEMP INTO :accc.T_REC,:accc.T_ISS,:accc.TYPE_NO ,:ACCC.TYPE_UNIT,:ACcc.D_DATE,:ACCC.REC_FROM,
:ACCC.TYPE_NO1,:ACCC.TYPE_UNIT1,:ACCC.D_DATE1,:ACCC.ISSU_TO;
EXIT WHEN GETEMP % NOTFOUND;

NEXT_RECORD;
END LOOP;
CLOSE GETEMP;

END;

بتاريخ:

السلام عليكم
الاخ العزيز
تكرار السجلات ينتج عن عدم وجود ربط كامل بين الجدولين اي ان هناك جزء ناقص في شرط الربط بين الجدولين راجع الجداول و الربط بينهم
و يمكنك ان تعمل بلوك نتائج البحث من نوع from clause query
سيوفر عليك الكثير من الكود
و اعتقد انه يوجد بالمنتدي موضوع يشرح كيفية عمل البلوك علي أساس from clause query
ابحث عنه و ستجده
بالتوفيق

بتاريخ:
  • كاتب الموضوع

الاخوان اسامة وhanon_OCP شكرا جزيلا لكم على الرد وجزاكم الله كل خير ساجرب واضع الرد بعد ذلك حتى يستفيد جميع الاخوة فى المنتدى

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:

السلام عليكم
ارسل الجداول التي تختار منها
و اذا امكن جمل الانسرت للداتا
حتي يمكن تحليل الخطأ

بتاريخ:

مجرد محاولة للمساعدة

وحد طريقة الادخال للاحرف او طريقة السؤال
N capitel letter
or
n small letter

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

FROM trec,TISSU
where TREC.TYPE_NAME =N AND TISSU.TYPE_NAME = n


FROM trec,TISSU
where upper(TREC.TYPE_NAME) ='N' AND 
upper(TISSU.TYPE_NAME)= 'N'



الافضل كما ذكر الاخ/ اسامه >> لابد من وجود ربط بين الجدولين

where 
  UPPER(TREC.TYPE_NAME) ='N'    AND 
TISSU.TYPE_NAME =TREC.TYPE_NAME;

تم تعديل بواسطة Amgad

بتاريخ:
  • كاتب الموضوع

اخى الكريم هذه هى صيغ انشاء الجداول وايضا جمل الاختيار وانا ساشرح لك بالضبط ما قمت به:

اولا قمت بانشاء شاشتين واحده للصادرREC واخرى للوارد ISSU واقوم بادخال بيانات الصادر والوارد فيهما
ثانيا : انشاءت شاشتين واحدة لمجموع الصادر واخرى لمجموع الوارد واقوم باختيار حقول من جدول الصادر ومن ثم استخدم دالة SUM من خواص CALCULATIONوذلك لايجاد مجموع الصادر واقوم بحفظ البيانات وكذلك اقوم بنفس الامر بالنسبة لشاشة الواردISSU وحتى هذه الخطوة لاتوجد مشاكل حيث اننى عندما استعرض البيانات من جدولى الصادر والوارد تاتى بدون تكرار ويتم الحفظ فى جدولى مجموع الصادر والوارد بدون مشاكل
ثالتا:
انشات شاشة اخيرة لمعرفة الرصيد الحقيقى وهى ACT وهنا تظهر المشكلة حيث عندما اقوم بالاستعلام تظهر البيانات مكررة فمثلا لو كان لدى سجلين فى جدول مجموع الصادر يتم تكرارهما فتظهر اربعة سجلات فى هذه الشاشة ولو كانو ثلاثة تظهر تسعة وهكذا ارجو منك المساعدة وجزاك الله كل خير لتحملك كل هذا العناء معى
مرفق صيغ انشاء الجداول وجمل الاستعلام المستخدمة لاحضار البيانات
ملاحظة : هذه الاكواد موضوعة فى TRIGGER وتعمل مع الحدث WHEN-BUTTON-PRESSED

FINAL_TABLE.txt

SELECT_FROM_TREC_AND_TISSU.txt

TREC________________.txt

TISSU_______________.txt

بتاريخ:
  • كاتب الموضوع

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

بتاريخ:
  • كاتب الموضوع

هذه الجداول والاستعلامات مرة اخرى اذا لم تفتح المرفقة مع الرسالة

____________________.doc

بتاريخ:

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

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.