اذهب الي المحتوي
أوفيسنا

عمل استعلام يظهر اسماء الغياب


الردود الموصى بها

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

الملف المرفق من هنا:

http://www.officena.net/ib/index.php?showtopic=11563

ولكم منى التحية

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

الاخ العزيز عاطف

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

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

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

INNER & LEFT

حيث تغيرهما ادى الى النتيجة المطلوبة

شاكر لسيادتكم جدااااااا

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

بسم الله...

عند إنشاء استعلام من أكثر من جدول، أنت تربط في عبارة الاستعلام بين الجداول بواسطة حقل مشترك، وتستخدم لذلك كلمة JOIN فيما يشبه الشكل:

FROM table1 X JOIN table2 ON table1.common_field = table2.common_field

table1 هو الجدول الأول، وtable2 طبعاً هو الجدول الثاني... common_field هو اسم الحقل المشترك بينهما، أما X هذه فقد تكون:

1. INNER: أنت بهذا تأمر الأكسس بأن يربط بين الجدولين (يجمع حقول الجدول الأول إلى جانب حقول الجدول الثاني في سطر واحد) بناء على تساوي القيم في الحقلين المشتركين، وليس هذا فقط... بل (وهو بيت القصيد) أن لا يحضر أي صف من الجدول الأول في النتيجة إلا إذا وجد في الحقل المشترك ما يساويه في الجدول الثاني، والعكس صحيح: يجب أن يكون لأي صف يظهر في النتيجة من الجدول الثاني ما يساويه في قيمة الحق المشترك من الجدول الأول (انتظر المثال إذا لم تفهم هذا...).

2. LEFT: هنا أيضاً تتم عملية الربط بناء على تساوي قيم الحقل المشترك في الجدول الأول والثاني، ولكن الفرض هنا أن يظهر في نتيجة الاستعلام كل صفوف الجدول الأيسر (Left) وهو الجدول الأول. هذه الصفوف تحوي في الحقل المشترك على قيم، الآن أحضر من الجدول الثاني فقط الصفوف التي تساوي قيم حقلها المشترك القيم في الجدول الأول...(أيضاً انتظر المثال؛ فبالمثال يتضح المقال).

3. RIGHT: أظن هذا مفهوماً... اشترط هنا أن يحضر صفوف الجدول الثاني (الأيمن Right) كلها بغض النظر عن وجود صفوف في الجدول الآخر تتساوى معها في قيم الحقل المشترك...(لا، لا تنتظر أكثر، فالمثال في السطر التالي مباشرة...).

افرض أن لديك جدولين: واحد للطلاب، والآخر يرتبط فيه كل طالب بهواية أو أكثر... بعض الطلاب ليس لديهم هوايات، وبعض الهوايات لا يرتبط بها أي طالب (كالقراءة مثلاً )...

أنت تريد أن تظهر في استعلام واحد الطلاب مع هوايات كل منهم...

إذا استخدمت INNER JOIN فأنت تقول للأكسس: أحضر في النتيجة فقط الطلاب الذين لديهم هوايات، والهوايات التي ترتبط بطلاب؛ الطلاب الذين ليس لديهم هوايات لن يظهروا، والسبب أن الحقل المشترك بين الجدولين هو رقم الطالب، ولكن رقم الطالب في الجدول الأول (الطلاب) لا يجد ما يساويه في حقل رقم الطالب في جدول الهوايات (لأن الطالب ليس لديه هوايات: بدأنا نكرر...)، وبالمثل الهوايات التي لا يرتبط بها أي طالب حقل رقم الطالب فيها خالي...

أما إذا استخدمت LEFT JOIN فهذا معناه أنك تريد كل الطلاب، وفقط الهوايات التي ترتبط بطلاب... فكر فيها هكذا: أحضر كل صفوف الطلاب، ثم اختر من جدول الهوايات فقط الصفوف التي تحوي في حقل رقم الطالب على رقم طالب...

وطبعاً، RIGHT JOIN تحضر كل الهوايات بغض النظر عن وجود طلاب مرتبطين بها أم لا، و تحضر بيانات الطلاب الذين لهم هوايات (يتساوى حقل رقم الطالب في جدول الهوايات مع حقل رقم الطالب في جدول الطلاب)...

أرجو أن تكون الفكرة قد وصلت، وإن لم تصل بعد، فتأمل أكثر قليلاً، وإلا فلا تتردد في الاستفسار...

ملحوظة: المثال مبسط لتوضيح الفكرة، وإلا فالصورة المثلى للطلاب وهواياتهم تكون بثلاثة جداول: واحد للطلاب، والثاني لبيانات الهوايات، والثالث لربط كل طالب مع هواية (حقلان: رقم الطالب ورقم الهواية).

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

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

واخيرا لك التحية اخى احمد والاخ العزيز أميرعاطف

ولكل اعضاء منتدانا الكريم

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

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

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

من الطبيعي أن يظهرمرتين في الجداول و الا كيف سيقوم بتسجيل الحضور و بعد ذلك الانصراف

هل تريد أن يظهر الاسم مرة واحدة في النماذج أم في التقارير وضحأين تريد حتي يتسني لنا أو لأي أخ أن يستطيع الرد عليك

أحمد بدر

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

خى العزيز احمد لك الشكر والتحية

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

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

و لكنك من الممكن أن تفقد بعض البيانات في هذه الحالة

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

علي ما أعتقد أن هذا صحيح و إذا كان هناك توضيح فأرجو أن توضحه

علما بأن أنه يمكن ذلك من خلال النماذج مع عرض كل البيانات التي تحتاجها و كذلك التقارير من خلال ما يسمي بالجروب

و يمكن معرفتها من خلال الرابط التالي :-

http://www.officena.net/ib/index.php?showtopic=11547

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

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

تقبل تحياتى اخى العزيز احمد بدر

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

×   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

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information