• 0
ahmed27

التجميع التراكمي

سؤال

لسلام عليكم ورحمة الله وبركاتة انا عندى مشكلة في [جملة سيكول بحيث يعمل تجميع تراكمي sum over من عمود لعمود  واحد ونعمل validation لعمود بحيث يعمل limited معين لحد 50000 او 5000 او اي رقم ويقوم بعمل sum over من اول وجديد لحد ما يوصل لحد المسموح بي تاني

ومرفق معايا شكل صورة جريد اراجوا الرد وجزاك الله كل خير

عمل ودي جلة سيكول

SELECT     TOP (100) PERCENT T1.ID, T1.CarID, SUBSTRING(CONVERT(VARCHAR(10), T1.DataCar, 102), 1, 10) AS DataCar, dbo.TCarInfor.BoarderNo,
                      dbo.LTCarModels.ModelName, dbo.TCarInfor.ModelYear, dbo.TCarInfor.MotorNO, dbo.TCarInfor.CC, T1.SpaceLimit,
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit
                             FROM         dbo.TCarRecord AS T2
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) AS RunningTotal, CASE WHEN
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit
                             FROM         dbo.TCarRecord AS T2
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) <= 50000 THEN
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit
                             FROM         dbo.TCarRecord AS T2
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) WHEN
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit
                             FROM         dbo.TCarRecord AS T2
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) = 50000 THEN
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit
                             FROM         dbo.TCarRecord AS T2
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) ELSE abs
                          (((SELECT     SUM(SpaceLimit) AS Spcaelimit
                                FROM         dbo.TCarRecord AS T2
                                WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) - 50000)) END AS MoadelElkaotsh, dbo.get_moadel_elkaotsh_5000(400) AS newfunc,
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit
                             FROM         dbo.TCarRecord AS T2
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) AS tof,
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit1
                             FROM         dbo.TCarRecord AS T3
                             WHERE     (ID <= T2.ID) AND (CarID = T2.CarID)) AS RunningTotal2, SUM(T1.SpaceLimit) OVER (PARTITION BY T1.ID, t1.CarID) AS MoadelElkaotsh1,
                          (SELECT     SUM(SpaceLimit) AS Spcaelimit1
                             FROM         dbo.TCarRecord AS T3
                             WHERE     (ID <= T1.ID) AND (CarID = T1.CarID)) AS tof2, dbo.TCarInfor.ChasseNo, dbo.TCarInfor.CylinderNum, T1.ID AS Expr1, T1.StayNo, T1.RetuernNo,
                      T1.TotalLienseVal, T1.FuelCost, dbo.LTFuelTypes.FuelTypeName, T1.TotalFuel, T1.AmraCostVal, T1.OilCoast, dbo.TCarInfor.FuelID, dbo.TCarInfor.CarBrandID,
                      T1.RateBatter, dbo.TCarInfor.CartID
FROM         dbo.TCarInfor INNER JOIN
                      dbo.TCarRecord AS T1 INNER JOIN
                      dbo.TCarRecord AS T2 ON T1.ID = T2.ID AND T1.CarID = T2.CarID ON dbo.TCarInfor.CartID = T1.CarID INNER JOIN
                      dbo.LTFuelTypes ON dbo.TCarInfor.FuelID = dbo.LTFuelTypes.FuelTypeID INNER JOIN
                      dbo.LTCarModels ON dbo.TCarInfor.CarBrandID = dbo.LTCarModels.ID
ORDER BY T1.CarID, T1.ID

test.png

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

1 إجابات على هذا السؤال .

  • 0

ارجوا الرد ياريت مشروع وقف ف تحليل لمشكلة ياريت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .