SELECT * FROM ( SELECT '' AS SerialNumber, TableSalesMain.SalesDate AS RecordDate, TableClass.ClassNumber, TableClass.ClassName, TableSalesSub.SalesQuantity AS Quantity, TableClassUnity.ClassUnity, TableSalesSub.SupplingPriceUnity, TableSalesSub.TotalSupplingPriceClassBeforDiscount AS TotalSupplingPrice, TableSalesSub.SalesPriceUnity, TableSalesSub.TotalSalesPriceClassBeforDiscount AS TotalSalesPrice, TableSalesSub.GainAmount, '0' AS LoseAmount, TableSalesMain.Baean, 'TableSales' AS TableName, TableSalesSub.ClassID FROM TableSalesMain INNER JOIN TableSalesSub ON TableSalesMain.ID = TableSalesSub.SalesMainID INNER JOIN TableClass ON TableSalesSub.ClassID = TableClass.ID INNER JOIN TableClassUnity ON TableSalesSub.UnityID = TableClassUnity.ID Union SELECT '' AS SerialNumber, TableFeedBackMain.SupplyingDate AS RecordDate, TableClass.ClassNumber, TableClass.ClassName, TableFeedBackSub.Quantity, TableClassUnity.ClassUnity, TableFeedBackSub.SupplyingPriceUnity, TableFeedBackSub.SupplyingTotalPrice AS TotalSupplingPrice, TableFeedBackSub.SalesPriceUnity, TableFeedBackSub.TotalSalesPriceClassBeforDiscount AS TotalSalesPrice, '0' AS GainAmount, TableFeedBackSub.LoseAmount, TableFeedBackMain.Baean, 'TableFeedBack' AS TableName, TableFeedBackSub.ClassID FROM TableFeedBackMain INNER JOIN TableFeedBackSub ON TableFeedBackMain.ID = TableFeedBackSub.FeedBackMainID INNER JOIN TableClass ON TableFeedBackSub.ClassID = TableClass.ID INNER JOIN TableClassUnity ON TableFeedBackSub.UnityID = TableClassUnity.ID WHERE TableFeedBackMain.FeedBackOrDelete = 'FeedBack' ) QClassGainAndLose ORDER BY RecordDate,Baean,ClassID;
برجاء المساعدة فى تصحيح ذلك الاستعلام
الاستعلام عند التنفيذ لا يتم ولا اعرف اين يوجد الخطأ فى الاستعلام برجاء الافادة وشكرا
السلام عليكم ..
الاستعلام صحيح .. قمت بتجربته .. يبدو أن البيانات لم يتم ادخالها بشكل صحيح بما يتوافق مع العلاقات ..
الافضل استخدام (Union ALL) بدلا من (Union) لوحدها لأنها تقوم بحذف السجلات المكررة من ناتج الاستعلام ..
تم تعديل هذه المشاركة بواسطة حسام الشامي في 18 ديسمبر 2013 في 11:46
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
ممكن تعيد كتابتة باستخدام Union ALL
helskran كتب:ممكن تعيد كتابتة باستخدام Union ALL
تفضل اخي الكريم .. طبعا وضعت أقوس في عبارات الــ Join ...
SELECT * FROM ( SELECT '' AS SerialNumber, TableSalesMain.SalesDate AS RecordDate, TableClass.ClassNumber, TableClass.ClassName, TableSalesSub.SalesQuantity AS Quantity, TableClassUnity.ClassUnity, TableSalesSub.SupplingPriceUnity, TableSalesSub.TotalSupplingPriceClassBeforDiscount AS TotalSupplingPrice, TableSalesSub.SalesPriceUnity, TableSalesSub.TotalSalesPriceClassBeforDiscount AS TotalSalesPrice, TableSalesSub.GainAmount, '0' AS LoseAmount, TableSalesMain.Baean, 'TableSales' AS TableName, TableSalesSub.ClassID FROM (((TableSalesMain INNER JOIN TableSalesSub ON TableSalesMain.ID = TableSalesSub.SalesMainID) INNER JOIN TableClass ON TableSalesSub.ClassID = TableClass.ID )INNER JOIN TableClassUnity ON TableSalesSub.UnityID = TableClassUnity.ID ) Union ALL SELECT '' AS SerialNumber, TableFeedBackMain.SupplyingDate AS RecordDate, TableClass.ClassNumber, TableClass.ClassName, TableFeedBackSub.Quantity, TableClassUnity.ClassUnity, TableFeedBackSub.SupplyingPriceUnity, TableFeedBackSub.SupplyingTotalPrice AS TotalSupplingPrice, TableFeedBackSub.SalesPriceUnity, TableFeedBackSub.TotalSalesPriceClassBeforDiscount AS TotalSalesPrice, '0' AS GainAmount, TableFeedBackSub.LoseAmount, TableFeedBackMain.Baean, 'TableFeedBack' AS TableName, TableFeedBackSub.ClassID FROM (((TableFeedBackMain INNER JOIN TableFeedBackSub ON TableFeedBackMain.ID = TableFeedBackSub.FeedBackMainID) INNER JOIN TableClass ON TableFeedBackSub.ClassID = TableClass.ID) INNER JOIN TableClassUnity ON TableFeedBackSub.UnityID = TableClassUnity.ID ) WHERE TableFeedBackMain.FeedBackOrDelete = 'FeedBack' ) QClassGainAndLose ORDER BY RecordDate,Baean,ClassID;
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
شكرا على الرد
الاخ الفاضل حسام شكرا على تعاونك التام :-
انظر ذلك الاستعلام لماذا لا ينفذ مع ان الجداول بها بيانات
SELECT '' AS SerialNumber, TableExchange.ID, TableExchange.ExchangeDate, TableExchange.Money, TableExchange.ExchangeTo, TableExchangeBecause.ExchangeBecause, TableExchange.About, TableUser.FullName FROM TableExchange INNER JOIN TableUser ON TableExchange.UserID = TableUser.ID INNER JOIN TableExchangeBecause ON TableExchange.ExchangeBecauseID = TableExchangeBecause.ID WHERE ( TableExchange.ExchangeDate > =? AND TableExchange.ExchangeDate < =? ) AND ( TableExchange.ExchangeBecauseID=?) ) ORDER BY TableExchange.ExchangeDate;
السلام عليكم ...
عبارات الــ join بحاجة لأقواس ..
المعامل =< ليس فيه فراغ أي أن = < يعتبر خاطئ .
عبارة الــ Where فيها قوس ناقص .
SELECT '' AS SerialNumber, TableExchange.ID, TableExchange.ExchangeDate, TableExchange.Money, TableExchange.ExchangeTo, TableExchangeBecause.ExchangeBecause, TableExchange.About, TableUser.FullName FROM (TableExchange INNER JOIN TableUser ON TableExchange.UserID = TableUser.ID) INNER JOIN TableExchangeBecause ON TableExchange.ExchangeBecauseID = TableExchangeBecause.ID WHERE (((TableExchange.ExchangeDate)>= ? And (TableExchange.ExchangeDate)<= ?) AND ((TableExchange.ExchangeBecauseID)=?)) ORDER BY TableExchange.ExchangeDate;
تم تعديل هذه المشاركة بواسطة حسام الشامي في 21 ديسمبر 2013 في 16:29
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
شكرا على الرد