كريمو2 قام بنشر ديسمبر 5, 2020 قام بنشر ديسمبر 5, 2020 (معدل) السلام عليكم اساتذتي الكرام لديا استعلام موحد SELECT dm([Numéro de compte],[Clé],[montant global],[nombre de bénificiaires],[Mois],[Année]) AS LIGNECD FROM tbl2; UNION ALL SELECT cd([N° compt CCP],[Cle CCP],[Montant],[Nom &Prénom &fr]) AS LIGNECD FROM tbl1; نتيجته اردت ان استبدل هذا الاستلام UNION ALL SELECT cd([N° compt CCP],[Cle CCP],[Montant],[Nom &Prénom &fr]) AS LIGNECD FROM tbl1; بمجموعة من الاستعلامات وهي SELECT Bill.CompanyID, Company.[Nom &Prénom &fr],Company.[N° compt CCP], Company.[Cle CCP],-1 AS TheType, Sum(Bill.Bill_Value) AS TheValue, Add_Observations([Bill].[CompanyID],"Bill") AS Obsérvation, -1 AS M FROM Company INNER JOIN Bill ON Company.CompanyID = Bill.CompanyID GROUP BY Bill.CompanyID, Company.[Nom &Prénom &fr],Company.[N° compt CCP], Company.[Cle CCP],-1, Add_Observations([Bill].[CompanyID],"Bill"), Month([Bill_Date]), Year([Bill_Date]) HAVING (((Month([Bill_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Bill_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Cridi.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1 AS TheType, Sum(Cridi.Cridi_Value) AS SumOfCridi_Value,Add_Observations([Cridi].[EmployeeID],"Cridi") AS Obsérvation,-1 AS M FROM Employee INNER JOIN Cridi ON Employee.EmployeeID = Cridi.EmployeeID GROUP BY Cridi.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],[adress],+1, Add_Observations([Cridi].[EmployeeID],"Cridi"), Month([Cridi_Date]), Year([Cridi_Date]) HAVING (((Month([Cridi_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Cridi_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Mena7.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1 AS TheType, Sum(Mena7.Menha_Value) AS SumOfMenha_Value,Add_Observations([Mena7].[EmployeeID],"Mena7") AS Obsérvation ,-1 AS M FROM Employee INNER JOIN Mena7 ON Employee.EmployeeID = Mena7.EmployeeID GROUP BY Mena7.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP],+1, Add_Observations([Mena7].[EmployeeID],"Mena7"), Month([Menha_Date]), Year([Menha_Date]) HAVING (((Month([Menha_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Menha_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Sanitaire.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1 AS TheType, Sanitaire.NesbaValue,Add_Observations([Sanitaire].[EmployeeID],"Sanitaire") AS Obsérvation, -1 AS M FROM Employee INNER JOIN Sanitaire ON Employee.EmployeeID = Sanitaire.EmployeeID GROUP BY Sanitaire.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1, Sanitaire.NesbaValue, Add_Observations([Sanitaire].[EmployeeID],"Sanitaire"), Month([Sanitaire_Date]), Year([Sanitaire_Date]) HAVING (((Month([Sanitaire_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Sanitaire_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Mossada.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1 AS TheType, Mossada.Moss_Value, Add_Observations([Mossada].[EmployeeID],"Mossada") AS Obsérvation, Moss_Ver FROM Employee INNER JOIN Mossada ON Employee.EmployeeID = Mossada.EmployeeID GROUP BY Mossada.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1, Mossada.Moss_Value, Add_Observations([Mossada].[EmployeeID],"Mossada"), Mossada.Moss_Ver, Month([Moss_Date]), Year([Moss_Date]) HAVING (((Month([Moss_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Moss_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Scolaire.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1 AS TheType, Scolaire.Scolaire_Value,Add_Observations([Scolaire].[EmployeeID],"Scolaire") AS Obsérvation, -1 AS M FROM Employee INNER JOIN Scolaire ON Employee.EmployeeID = Scolaire.EmployeeID GROUP BY Scolaire.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],[adress],+1, Scolaire.Scolaire_Value,Add_Observations([Scolaire].[EmployeeID],"Scolaire"), Month([Scolaire_Date]), Year([Scolaire_Date]) HAVING (((Month([Scolaire_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Scolaire_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))); مع العلم ان montant global هو مجموع Bill_Value و Cridi_Valueو ........... الى اخر استعلام Scolaire_Value و [nombre de bénificiaires] هو عدد المستفيدين و [Mois],[Année] هو شهر وسنة هذا المعيار (((Month([Bill_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Bill_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) ارحوا ان يتم التوحيد وشكرا تم تعديل ديسمبر 5, 2020 بواسطه كريمو2
كريمو2 قام بنشر ديسمبر 6, 2020 الكاتب قام بنشر ديسمبر 6, 2020 للتوضيح أكثر توحيد الصف الاول الى غاية tbl2 SELECT dm([Numéro de compte],[Clé],[montant global],[nombre de bénificiaires],[Mois],[Année]) AS LIGNECD FROM tbl2; UNION ALL SELECT cd([N° compt CCP],[Cle CCP],[Montant],[Nom &Prénom &fr]) AS LIGNECD FROM tbl1; مع استبدال UNION ALL SELECT cd([N° compt CCP],[Cle CCP],[Montant],[Nom &Prénom &fr]) AS LIGNECD FROM tbl1; بهذا SELECT Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],+1 AS TheType, Sum(Cridi.Cridi_Value) AS SumOfCridi_Value,Add_Observations([Cridi].[EmployeeID],"Cridi") AS Obsérvation,-1 AS M FROM Employee INNER JOIN Cridi ON Employee.EmployeeID = Cridi.EmployeeID GROUP BY Cridi.EmployeeID, Employee.[Nom &Prénom &fr],Employee.[N° compt CCP],Employee.[Cle CCP],[adress],+1, Add_Observations([Cridi].[EmployeeID],"Cridi"), Month([Cridi_Date]), Year([Cridi_Date]) HAVING (((Month([Cridi_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Cridi_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) مع الاحتفاط ب : [N° compt CCP] [Cle CCP] [Montant]=Sum(Cridi.Cridi_Value) [Nom &Prénom &fr] tbl1= Cridi المعيار
كريمو2 قام بنشر ديسمبر 6, 2020 الكاتب قام بنشر ديسمبر 6, 2020 (معدل) لقد حاولت التعديل وفلح الا انني وجدت مشكلة في [nombre de bénificiaires] هي عدد المستفيدين [montant global] المجموع الكلي لـ [montant global] =Sum(Bill.Bill_Value) + Sum(Cridi.Cridi_Value) +Sum(Mena7.Menha_Value)+Sanitaire.NesbaValue+Mossada.Moss_Value+Scolaire.Scolaire_Value+ ارجو التعديل وشكرا PARAMETERS [Forms]![FrmTransfer]![txtMonth] DateTime = Now(); SELECT dm([Numéro de compte],[Clé],[montant global],[nombre de bénificiaires],[Mois],[Année]) AS LIGNECD FROM tbl2; UNION ALL SELECT cd([N° compt CCP],[Cle CCP],[TheValue],[Nom &Prénom &fr]) AS LIGNECD FROM (SELECT Company.[N° compt CCP], Company.[Cle CCP],Company.[Nom &Prénom &fr], -1 AS TheType, Sum(Bill.Bill_Value) AS TheValue, -1 AS M FROM Company INNER JOIN Bill ON Company.CompanyID = Bill.CompanyID GROUP BY Bill.CompanyID, Company.[Nom &Prénom &fr], Company.[N° compt CCP], Company.[Cle CCP], -1, "Bill", Month([Bill_Date]), Year([Bill_Date]) HAVING (((Month([Bill_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Bill_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Employee.[N° compt CCP],Employee.[Cle CCP],Employee.[Nom &Prénom &fr], +1 AS TheType, Sum(Cridi.Cridi_Value) AS SumOfCridi_Value, -1 AS M FROM Employee INNER JOIN Cridi ON Employee.EmployeeID = Cridi.EmployeeID GROUP BY Cridi.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP], +1, "Cridi", Month([Cridi_Date]), Year([Cridi_Date]) HAVING (((Month([Cridi_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Cridi_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Employee.[N° compt CCP],Employee.[Cle CCP], Employee.[Nom &Prénom &fr], +1 AS TheType, Sum(Mena7.Menha_Value) AS SumOfMenha_Value, -1 AS M FROM Employee INNER JOIN Mena7 ON Employee.EmployeeID = Mena7.EmployeeID GROUP BY Mena7.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP], +1, "Mena7", Month([Menha_Date]), Year([Menha_Date]) HAVING (((Month([Menha_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Menha_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Employee.[N° compt CCP],Employee.[Cle CCP],Employee.[Nom &Prénom &fr], +1 AS TheType, Sanitaire.NesbaValue, -1 AS M FROM Employee INNER JOIN Sanitaire ON Employee.EmployeeID = Sanitaire.EmployeeID GROUP BY Sanitaire.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP], +1, Sanitaire.NesbaValue, "Sanitaire", Month([Sanitaire_Date]), Year([Sanitaire_Date]) HAVING (((Month([Sanitaire_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Sanitaire_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Employee.[N° compt CCP],Employee.[Cle CCP],Employee.[Nom &Prénom &fr], +1 AS TheType, Mossada.Moss_Value, -1 AS M FROM Employee INNER JOIN Mossada ON Employee.EmployeeID = Mossada.EmployeeID GROUP BY Mossada.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP], +1, Mossada.Moss_Value, Add_Observations([Mossada].[EmployeeID],"Mossada"), Mossada.Moss_Ver, Month([Moss_Date]), Year([Moss_Date]) HAVING (((Month([Moss_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Moss_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) UNION ALL SELECT Employee.[N° compt CCP],Employee.[Cle CCP],Employee.[Nom &Prénom &fr], +1 AS TheType, Scolaire.Scolaire_Value, -1 AS M FROM Employee INNER JOIN Scolaire ON Employee.EmployeeID = Scolaire.EmployeeID GROUP BY Scolaire.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP], +1, Scolaire.Scolaire_Value,"Scolaire", Month([Scolaire_Date]), Year([Scolaire_Date]) HAVING (((Month([Scolaire_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Scolaire_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth]))))); تم تعديل ديسمبر 6, 2020 بواسطه كريمو2
jjafferr قام بنشر ديسمبر 7, 2020 قام بنشر ديسمبر 7, 2020 وعليكم السلام 🙂 لعمل استعلام توحيد ، هناك شرط واحد فقط ، وهو تساوي عدد الحقول الظاهرة (الغير مخفية) في كل استعلام. الاستعلام الاول يرسل بيانات 5 حقول الى الوحدة النمطية dm (وهذا غير مهم بالنسبة الى استعلام التوحيد) ، ولكن المهم ان الاستعلام فيه حقل واحد فقط : SELECT dm([Numéro de compte],[Clé],[montant global],[nombre de bénificiaires],[Mois],[Année]) AS LIGNECD FROM tbl2 . والاستعلام الثاني يرسل بيانات 4 حقول الى الوحدة النمطية cd (وهذا غير مهم بالنسبة الى استعلام التوحيد) ، ولكن المهم ان الاستعلام فيه حقل واحد فقط : SELECT cd([N° compt CCP],[Cle CCP],[Montant],[Nom &Prénom &fr]) AS LIGNECD FROM tbl1 . لهذا السبب تمكنا من توحيد الاستعلامين في استعلام واحد. اما الاستعلام الجديد (احد الاستعلامات الجديدة) فهو يحتوي على 6 حقول : SELECT Employee.[N° compt CCP],Employee.[Cle CCP],Employee.[Nom &Prénom &fr], +1 AS TheType, Sum(Cridi.Cridi_Value) AS SumOfCridi_Value, -1 AS M FROM Employee INNER JOIN Cridi ON Employee.EmployeeID = Cridi.EmployeeID GROUP BY Cridi.EmployeeID, Employee.[Nom &Prénom &fr], Employee.[N° compt CCP],Employee.[Cle CCP], +1, "Cridi", Month([Cridi_Date]), Year([Cridi_Date]) HAVING (((Month([Cridi_Date]))=Month(CDate([Forms]![FrmTransfer]![txtMonth]))) AND ((Year([Cridi_Date]))=Year(CDate([Forms]![FrmTransfer]![txtMonth])))) فلا يمكن توحيد الاستعلام ذو الحقل الواحد (الاستعلام الاول) ، مع هذا الاستعلام ذو الاكثر من حقل واحد. جعفر 1
كريمو2 قام بنشر ديسمبر 8, 2020 الكاتب قام بنشر ديسمبر 8, 2020 شكرا استاذ جعفر على الاهتمام تم الحل PARAMETERS StartMonth DateTime = DateSerial(Year(Now),Month(Now),1), EndMonth DateTime = DateSerial(Year(Now),Month(Now)+1,0), Mois Long = Month(Now), Annee Long = Year(Now); SELECT dm(DLookup("[Numéro de compte]","tbl2"),DLookup("[Clé]","tbl2"),Sum(TV),Count(*),Mois,Annee) AS LIGNECD FROM (SELECT EmployeeID, Sum(TheValue) AS TV FROM ( SELECT CompanyID As EmployeeID, [BILL_Value] AS TheValue FROM Bill WHERE Bill_Date BETWEEN StartMonth AND EndMonth UNION ALL SELECT EmployeeID,[Cridi_Value] AS TheValue FROM Cridi WHERE Cridi_Date BETWEEN StartMonth AND EndMonth UNION ALL SELECT EmployeeID,[Menha_Value] AS TheValue FROM Mena7 WHERE Menha_Date BETWEEN StartMonth AND EndMonth UNION ALL SELECT EmployeeID,[NesbaValue] AS TheValue FROM Sanitaire WHERE Sanitaire_Date BETWEEN StartMonth AND EndMonth UNION ALL SELECT EmployeeID,[Moss_Value] AS TheValue FROM Mossada WHERE Moss_Date BETWEEN StartMonth AND EndMonth UNION ALL SELECT EmployeeID,[Scolaire_Value] AS TheValue FROM Scolaire WHERE Scolaire_Date BETWEEN StartMonth AND EndMonth ) GROUP BY EmployeeID); UNION ALL SELECT LIGNECD FROM ( SELECT cd([N° compt CCP],[Cle CCP],[TheValue],[Nom &Prénom &fr]) AS LIGNECD FROM ( SELECT EmployeeID, [N° compt CCP], [Cle CCP], [Nom &Prénom &fr], Sum(TheValueT) AS TheValue FROM ( SELECT Company.CompanyID AS EmployeeID, Company.[N° compt CCP], Company.[Cle CCP],Company.[Nom &Prénom &fr], -1 AS TheType, Bill.Bill_Value AS TheValueT, -1 AS M,Bill.Bill_Date FROM Company INNER JOIN Bill ON Company.CompanyID = Bill.CompanyID WHERE Bill.Bill_Date Between [StartMonth] And [EndMonth] UNION ALL SELECT Employee.EmployeeID, Employee.[N° compt CCP], Employee.[Cle CCP], Employee.[Nom &Prénom &fr], +1 AS TheType, Cridi.Cridi_Value AS TheValueT, -1 AS M, Cridi.Cridi_Date FROM Employee INNER JOIN Cridi ON Employee.EmployeeID = Cridi.EmployeeID WHERE Cridi.Cridi_Date Between [StartMonth] And [EndMonth] UNION ALL SELECT Employee.EmployeeID,Employee.[N° compt CCP],Employee.[Cle CCP], Employee.[Nom &Prénom &fr], +1 AS TheType, Mena7.Menha_Value AS TheValueT, -1 AS M , Mena7.Menha_Date FROM Employee INNER JOIN Mena7 ON Employee.EmployeeID = Mena7.EmployeeID WHERE Mena7.Menha_Date Between [StartMonth] And [EndMonth] UNION ALL SELECT Employee.EmployeeID, Employee.[N° compt CCP],Employee.[Cle CCP], Employee.[Nom &Prénom &fr], +1 AS TheType, Sanitaire.NesbaValue AS TheValueT, -1 AS M , Sanitaire.Sanitaire_Date FROM Employee INNER JOIN Sanitaire ON Employee.EmployeeID = Sanitaire.EmployeeID WHERE Sanitaire.Sanitaire_Date Between [StartMonth] And [EndMonth] UNION ALL SELECT Employee.EmployeeID,Employee.[N° compt CCP],Employee.[Cle CCP], Employee.[Nom &Prénom &fr], +1 AS TheType, Scolaire.Scolaire_Value AS TheValueT, -1 AS M , Scolaire.Scolaire_Date FROM Employee INNER JOIN Scolaire ON Employee.EmployeeID = Scolaire.EmployeeID WHERE Scolaire.Scolaire_Date Between [StartMonth] And [EndMonth] UNION ALL SELECT Employee.EmployeeID,Employee.[N° compt CCP],Employee.[Cle CCP], Employee.[Nom &Prénom &fr], +1 AS TheType, Mossada.Moss_Value AS TheValueT, -1 AS M , Mossada.Moss_Date FROM Employee INNER JOIN Mossada ON Employee.EmployeeID = Mossada.EmployeeID WHERE Mossada.Moss_Date Between [StartMonth] And [EndMonth] ) GROUP BY EmployeeID, [N° compt CCP], [Cle CCP], [Nom &Prénom &fr] ORDER BY Val (EmployeeID) ))WHERE LIGNECD <> ""; ولكن بقيت مشكلة ترتيب العمال حسب EmployeeID ولكن لقيت صعوبة كبيرة في الترتيب فهل من فكرة ؟
jjafferr قام بنشر ديسمبر 9, 2020 قام بنشر ديسمبر 9, 2020 12 ساعات مضت, كريمو2 said: تم الحل الحمدلله 🙂 ولكني لا انصح ابدا بوضع Dlookup في استعلام ، لأن Dlookup هو استعلام بحد ذاته ، فما بالك اذا وضعت 2 Dlookup ، فسيكون استعلامك بطيء اذا زادت البيانات !! 12 ساعات مضت, كريمو2 said: ترتيب العمال حسب EmployeeID في استعلام التوحيد ، اضف Order By في الاستعلام الاخير فقط (ولا داعي ان تضعه في كل استعلام داخلي ، فتضيف وقت فرز كل استعلام ، على الاستعلام العام) 🙂 جملة ORDER BY Val (EmployeeID) التي كتبتها انت ، لم تضعها في آخر استعلام ، وانما في احد الاستعلامات الاخيرة في الـ union الاخير : . بينما يجب وضعها بعد امر Where الاخير : . هكذا : . وملاحظ ان عندك مجموعة من GROUP BY ، وهي تجعل الاستلام بطيء ايضا ، فيجب النظر في فائدتها ايضا 🙂 جعفر
كريمو2 قام بنشر ديسمبر 10, 2020 الكاتب قام بنشر ديسمبر 10, 2020 حاولت التقيد بما اشرت ولكن لم افلح انظر الترتيب في الاستعلام QryCD والاستعلام QryDM اما في الاستعلام UNION DM & CD بدون ترتيب اما السطر الاخير *000000000022222222980000000040000BBBB لاتبالي بها فهي تكون دائما في اخر الترتيب والترتيب يكون في الاستعلام UNION DM & CD KRIMO7 الى KRIMO157 هذا من جهة ومن جهة اخري في ٩/١٢/٢٠٢٠ at 09:02, jjafferr said: ولكني لا انصح ابدا بوضع Dlookup في استعلام ، لأن Dlookup هو استعلام بحد ذاته ، فما بالك اذا وضعت 2 Dlookup ، فسيكون استعلامك بطيء اذا زادت البيانات !! كيف ترى البديل اليك المرفق استاذ Trans CD.rar
jjafferr قام بنشر ديسمبر 12, 2020 قام بنشر ديسمبر 12, 2020 لعمل الفرز بالحقل ، EmployeeID ، انت استعملت: val (EmployeeID) والامر VAL يغير قيمة الرقم من نص الى رقم ، مثلا : VAL("84") = 84 ولكن VAL("F2") = 0 . بينما قيمة الحقل عندك هكذا: . فلا يمكن فرزها بطريقتك ، وانما استعمل الفرز العادي بدون الامر val ، وبسبب ان استعلامك مهول بمعنى الكلمة ، فلم اعرف بدايته من نهايته ، والعمل عليه 🤢 جعفر
كريمو2 قام بنشر ديسمبر 13, 2020 الكاتب قام بنشر ديسمبر 13, 2020 بالنسبة للإستعلام تم تبسيطه لعدة إستعلامات مقارنة بالإستعلام الموحد QueryCD الإستعلام QryCD هو لجلب بيانات الموظفين والممونين ورواتبهم في شهر ما وذلك لإستعمالهم في الدالة المعرفة CD عن طريق الإستعلام CD الإستعلام QryDM هو لجلب رواتب الموظفين والممونين في شهر ما وذلك لإستعمالهم في الدالة المعرفة DM عن طريق الإستعلام DM بالنسبة للإستعلام الموحد Union Dm & CD تم دمج إستعلام CD+DM للحصول على النتائج المطلوبة النتائج تأتي سليمة لكن بقيت مشكلة الترتيب حسب رقم الموظف بالنسبة للدالة DLookup المستعملة في كويري DM دورها جلب رقم الحساب البريدي ومفتاح الحساب البريدي للمؤسسة فقط ملاحظة: هذه الإستعلامات تم دمجها في إستعلام واحد والذي يحمل إسم QueryCD
أبو إبراهيم الغامدي قام بنشر ديسمبر 16, 2020 قام بنشر ديسمبر 16, 2020 أهلا @كريمو2 في ١٣/١٢/٢٠٢٠ at 19:11, كريمو2 said: بالنسبة للإستعلام الموحد Union Dm & CD تم دمج إستعلام CD+DM للحصول على النتائج المطلوبة النتائج تأتي سليمة لكن بقيت مشكلة الترتيب حسب رقم الموظف كان بإمكانك تكوين علاقات بين الجداول ضمن الاستعلام واستخدام الحقول مباشرة دون اللجوء إلى استخدام دوال التجميع! لدي تحفظ على هذا المقطع من الاستعلام QryCD ...FROM (SELECT Company.CompanyID AS EmployeeID... راجع المرفق رجاءً.. Trans CD.mdb 1
كريمو2 قام بنشر ديسمبر 17, 2020 الكاتب قام بنشر ديسمبر 17, 2020 (معدل) شكرا لك استاذ أبو إبراهيم الغامدي قلت لديك تحفظ على هذا المقطع من الاستعلام QryCD 15 ساعات مضت, أبو إبراهيم الغامدي said: ...FROM (SELECT Company.CompanyID AS EmployeeID... 1- ماهو هذا التحفظ ؟ او كيف تراه مناسبا بطريقتك 2- من جهة التعديل على المرفق لاحظت ظهور EmployeeID في الاستعلام المطلوب عدم ظهوره واذا شاءت الضرورة ان يظهر في الاستعلام لا يجب ان يظهر في التقرير تم تعديل ديسمبر 17, 2020 بواسطه كريمو2
الجموعي قام بنشر ديسمبر 17, 2020 قام بنشر ديسمبر 17, 2020 8 دقائق مضت, كريمو2 said: شكرا لك استاذ أبو إبراهيم الغامدي قلت لديك تحفظ على هذا المقطع من الاستعلام QryCD 1- ماهو هذا التحفظ ؟ او كيف تراه مناسبا بطريقتك 2- من جهة التعديل على المرفق لاحظت ظهور EmployeeID في الاستعلام المطلوب عدم ظهوره واذا شاءت الضرورة ان يظهر في الاستعلام لا يجب ان يظهر في التقرير تعقيب بعد إذن الاستاذ أبو إبراهيم الغامدي ظهور حقل في الاستعلام ليس بالضرورة ظهورة في التقرير هدف ظهور الحقل في الاستعلام الترتيب ليس إلا في التقرير انت من يحدد الحقول المراد ظهورها 2
jjafferr قام بنشر ديسمبر 18, 2020 قام بنشر ديسمبر 18, 2020 17 ساعات مضت, كريمو2 said: 2- من جهة التعديل على المرفق لاحظت ظهور EmployeeID في الاستعلام هذا الذي اشرت اليه لما قلت: في ١٣/١٢/٢٠٢٠ at 00:11, jjafferr said: فلا يمكن فرزها بطريقتك ، وانما استعمل الفرز العادي بدون الامر val جعفر 1
كريمو2 قام بنشر ديسمبر 18, 2020 الكاتب قام بنشر ديسمبر 18, 2020 8 ساعات مضت, jjafferr said: في ١٢/١٢/٢٠٢٠ at 21:11, jjafferr said: فلا يمكن فرزها بطريقتك ، وانما استعمل الفرز العادي بدون الامر val صحيح استاذ جعفر ولو انك عدلت على الاستعلام لكانت الفكرة اوضح لي عموما بارك الله فيكم جمبعا دمتم في خدمة الصالح العام
jjafferr قام بنشر ديسمبر 18, 2020 قام بنشر ديسمبر 18, 2020 والله حاولت ، وحذفت VAL من جملة SQL ، واذا بالاستعلام يطلب مني ادخال تاريخين ، ولا يعطي اي نتيجة ، فأخذت اول جملة SQL ، وعملت منها استعلام عادي ، وحذفت حقل فرز val(Employee_ID) ، وعملت الفرز على حقل Employee_ID مباشرة ، وكذلك طلب مني التاريخين !! ولم اعرف اين اجد هذين التاريخين ، لهذا السبب استسلمت ، وكتبت : في ١٣/١٢/٢٠٢٠ at 00:11, jjafferr said: وبسبب ان استعلامك مهول بمعنى الكلمة ، فلم اعرف بدايته من نهايته ، والعمل عليه 🤢 جعفر 1
أبو إبراهيم الغامدي قام بنشر ديسمبر 19, 2020 قام بنشر ديسمبر 19, 2020 في ١٧/١٢/٢٠٢٠ at 17:43, كريمو2 said: ماهو هذا التحفظ ؟ او كيف تراه مناسبا بطريقتك تجميع البيانات بالطريقة الرأسية أوقعك في مشكلة إعادة تسمية رمز الشركة إلى رمز الموظف! وهذا ما صعّب فرز البيانات! لأن رمز الشركة؛ بيانات نصيه، ورمز الموظف؛ بيانات رقمية. وكان من الأفضل تجميع البيانات بطريقة أفقية! هذا هو الأفضل، لأنه يمكنك من قراءت وتجميع البيانات بطريقة سليمة وصحيحة.. دقق في الصورة لترى مدى تطابق البيانات المتتعلقة بمجموع المبلغ.. في الواقع رصف البيانات بهذه الطريقة يبدو مألوفاً بالنسبة لي! فإن كان الغرض هو تبادل البيانات عن طريق ملفات نصية ذات بيانات ثابتة الطول كما هي توقعاتي! فهناك طرق لعمل ذلك دون الحاجة إلى التقرير! أرجو أن تكون هذه المعلومات مفيدة لك.. Trans CD.mdb
الجموعي قام بنشر ديسمبر 19, 2020 قام بنشر ديسمبر 19, 2020 17 ساعات مضت, أبو إبراهيم الغامدي said: تجميع البيانات بالطريقة الرأسية أوقعك في مشكلة إعادة تسمية رمز الشركة إلى رمز الموظف! وهذا ما صعّب فرز البيانات! لأن رمز الشركة؛ بيانات نصيه، ورمز الموظف؛ بيانات رقمية. وكان من الأفضل تجميع البيانات بطريقة أفقية! هذا هو الأفضل، لأنه يمكنك من قراءت وتجميع البيانات بطريقة سليمة وصحيحة.. دقق في الصورة لترى مدى تطابق البيانات المتتعلقة بمجموع المبلغ.. في الواقع رصف البيانات بهذه الطريقة يبدو مألوفاً بالنسبة لي! فإن كان الغرض هو تبادل البيانات عن طريق ملفات نصية ذات بيانات ثابتة الطول كما هي توقعاتي! فهناك طرق لعمل ذلك دون الحاجة إلى التقرير! أرجو أن تكون هذه المعلومات مفيدة لك.. Trans CD.mdb 584 kB · 11 downloads لدي تحفظ استاءنا الكبير ابو إبراهيم الغامدي على تجميع البيانات بطريقة أفقية لنفترض أنا منحة إضافية لموظف ما أعطيت في نفس الشهر وبسجل جديد في هذه الحالة لا تصلح طريقة التجميع الأفقي لأنه سيتم حساب سجلين للموظف في الاستعلام وهنا التجميع يتم ويكون خاطئ اي يتم تجميع كل سطر لوحده
أبو إبراهيم الغامدي قام بنشر ديسمبر 20, 2020 قام بنشر ديسمبر 20, 2020 12 ساعات مضت, الجموعي said: لدي تحفظ استاءنا الكبير ابو إبراهيم الغامدي على تجميع البيانات بطريقة أفقية من حقك أن تتحفظ أو تعترض متى وكيف شئت، على الرحب والسعة.. كان الحديث منصب على حالة معينة لأعمدة متنوعة في استعلام التوحيد.. ولعلك لاحظت أن القيم قد جمعت في استعلامات منفردة ضمن استعلام التوحيد! وهذا ما جعل مراجعة البيانات وتصحيحها غاية في الصعوبة.. نعم البيانات ذات العمود الواحد يمكن تجميعها رأسياً؛ بل لا يمكن إلا ذلك! لكن الأعمدة المتعددة لا يمكن تجميعها رأسياً! إنما هو رصها فوق بعضها باستخدام استعلام التوحيد! بعد تجميعها في استعلامات منفصلة، إما ضمناً أو خارجاً عن استعلام التوحيد. أما يتعلق بالسجلات المتعدد فلا يلزمك سوى استخدام خاصية التجميع فقط!
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.