الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في ربط ثلاثة جداول

مغلق
بدأه ALZABEDI في 7 نوفمبر 2004 · 8 رد · 780 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي ثلاثة جداول كالتالي

card فيه الحقول التالية | part |, qty ----- . وهو primarykey

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

مثال | 5 | 1001

import فيه الحقول التالية | part | ,qty | ,date_in هو forghinkey

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

|1-1-2004 | 5 | 1001

| 5-1-2004 | 10 | 1001

export فيه الحقول التالية | part | ,qty | ,date_out | هو forghinkey

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

| 2-1-2004 | 2 | 1001

| 10-1-2004 | 4 | 1001

وعلاقة الجدول card مرتبط بالجدولين import و export

والمشكلة هي كالتالي

اريد التقرير التالي مثلاً لو طلب تقرير بتاريخ 10-1-2004

القطعة | الرصيد السابق | المنصرف اليوم | الوارد اليوم | الرصيد الحالي

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

1001 | 13 | 4 | 0 | 9

مع العلم انه قد يكون أكثر من صنف ( يعني أكثر من 100 صنف مثلا)

ارجو المساعدة في حل هذه المشكلة بحيث تشمل استعلام واحد للكل

#2

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

use test
select distinct import.qty,
import.date_in,
export.date_out,
card.part
from import inner join card
on import.part=card.part
join export
on card.part=export.part
order by date_in
go

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#3

مشكور أخي طارق على الرد ولكن الكود ينقصة الكثير -

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

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

#4

ارجو التوضيح

مرفق صوره من تنفيذ السكربت

post-63-1099945883_thumb.png

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 8 نوفمبر 2004 في 23:31

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#5

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

لو افترضت انه عندي جدول به الوارد من قطع غيار لفترة معينة ولنفترض 50 يوم

من 1-2-2004 إلى تاريخ 20 - 3-2004 م

في هذه الفترة تمت حركة للوارد خلال هذه الفترة

وهنا السؤال لو طلب استعلام عن قطع غيار الواردة مثلاً في يوم 15-3-2004

ايش المفروض تكون نتيجة الإستعلام

رقم القطعة | الوارد من الحركة السابقة | الوارد خلال ذلك اليوم | إجمالي الوارد

_________________________________________________________

1001 -------| 10 --------------------| 2 _____________| 12

ملاحظة

الوارد من الحركة السابقة يعني : إجمالي كل ما تم توريده قبل ذلك التاريخ (15-3-2004)

الوارد خلال ذلك اليوم : إجمالي ما تم توريده خلال ذلك اليوم (15-3-2004)

اعتقد ان الامر الان اصبح واضح جدا

اتمنى من الإخوان سرعة المساعدة لان الوقت اصبح مشكلة بالنسبة لي

#6
اقتباس
وهنا السؤال لو طلب استعلام عن قطع غيار الواردة مثلاً في يوم 15-3-2004

ايش المفروض تكون نتيجة الإستعلام

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

select  count(qty) from mytable where date_in = '2004-03-15'

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

select  count(qty) from mytable where date_in < '2004-03-15'

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 9 نوفمبر 2004 في 06:38

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#7

اخي المشرف طارق

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

على العموم

select count(qty) from mytable where date_in = '2004-03-15'

select count(qty) from mytable where date_in < '2004-03-15'

احتاج الإستعلامين السابقين في استعلام واحد

بس لاحظ النتيجة كل استعلام من السابق سوف يكون في عمود

اضف إلى ذلك ان الكميات مجمعة

رقم القطعة | الإستعلام الأول | الإستعلام الثاني

_______________________________________________________

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

اعتقد اني وضحت الموضوع وشرحت لكن احس انه مافي فايدة ولا إجابة

#8
اقتباس
اعتقد اني وضحت الموضوع وشرحت لكن احس انه مافي فايدة ولا إجابة

بما انك تحس انه لا فائده و لااجابه إذاً فلا اجابه

تم تعديل هذه المشاركة بواسطة طارق إبراهيم في 12 نوفمبر 2004 في 11:23

Technical Lead Developer

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#9

بتعديل بسيط على محاولات الأخ طارق قمت بكتابة هذا الإجراء المخزن البسيط:

create procedure get_report
as
declare @qty_before int
declare @qty_in int

select @qty_in=sum(qty) from import where date_in = '2004-01-05'
select  @qty_before=sum(qty) from import where date_in < '2004-03-15'

select @qty_in as Quantity_before, @qty_before as Qunatity_after
go

والصورة المرفقة هي نتيجة تنفيذ الإجراء المخزن.

إن شاء الله ينفع معك :)

post-63-1100256018_thumb.jpg

فكر بطريقة أخرى

هذا الموضوع مغلق.

مواضيع مشابهة