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

عمل استعلام لاخر حركتين

بدأه kamal alnahhal في 4 أكتوبر 2010 · 3 رد · 480 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أحبائي الغالييييييييييين

تحية طيبة وبعد ،،،

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

المطلوب :

عمل استعلام لاخر حركتين لكل صنف

بارك الله فيكم

DBS.rar

[يمين]

إذا كـان تـرك الـدين يعــنــي تقــدمــاً

فـيا نفــس مـوتــي قبــل أن تتقـدمــي

[/يمين]

#2

تفضل اخى

فقط قم باضافة حقل ترقيم تلقائى الى جدول الحركات باسم id

و استخدم هذا الاستعلام

SELECT Items.NoItem, Items.Item, DLast("Date","moves","id<" & DLast("id","moves","noitem=" & items.noItem) & " and noitem=" & items.noItem & "") AS d, DLast("qty","moves","id<" & DLast("id","moves","noitem=" & items.noItem) & " and noitem=" & items.noItem & "") AS q, DLast("price","moves","id<" & DLast("id","moves","noitem=" & items.noItem) & " and noitem=" & items.noItem & "") AS p
FROM Items INNER JOIN Moves ON Items.NoItem = Moves.NoItem
GROUP BY Items.NoItem, Items.Item
UNION ALL SELECT Items.NoItem, Items.Item, Last(Moves.Date) AS d, Last(Moves.QTY) AS q, Last(Moves.Price) AS p
FROM Items INNER JOIN Moves ON Items.NoItem = Moves.NoItem
GROUP BY Items.NoItem, Items.Item
ORDER BY NoItem, d;
2

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#3

و هذا الاستعلام سيكون اسرع

و بدون اضافة حقل جديد

SELECT Items.NoItem, Items.Item, Last(Moves.Date) AS LastOfDate, Last(Moves.QTY) AS LastOfQTY, Last(Moves.Price) AS LastOfPrice
FROM Items INNER JOIN (Moves LEFT JOIN [SELECT Items.NoItem, Items.Item, Last(Moves.Date) AS d, Last(Moves.QTY) AS q, Last(Moves.Price) AS p
FROM Items INNER JOIN Moves ON Items.NoItem = Moves.NoItem
GROUP BY Items.NoItem, Items.Item
ORDER BY Items.NoItem, Last(Moves.Date);]. AS [last] ON Moves.Date = last.d) ON Items.NoItem = Moves.NoItem
GROUP BY Items.NoItem, Items.Item, last.d
HAVING (((last.d) Is Null));
UNION ALL SELECT Items.NoItem, Items.Item, Last(Moves.Date) AS d, Last(Moves.QTY) AS q, Last(Moves.Price) AS p
FROM Items INNER JOIN Moves ON Items.NoItem = Moves.NoItem
GROUP BY Items.NoItem, Items.Item
ORDER BY NoItem, LastOfDate;

تم تعديل هذه المشاركة بواسطة mrnooo2000 في 4 أكتوبر 2010 في 09:41

1

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#4

أخي الغالي

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

[يمين]

إذا كـان تـرك الـدين يعــنــي تقــدمــاً

فـيا نفــس مـوتــي قبــل أن تتقـدمــي

[/يمين]

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