PDA

View Full Version : کوئری جهت دریافت کاردکس ریالی در sql server



amirhoer2012
چهارشنبه 06 مرداد 1400, 19:57 عصر
سلام من دارم رو یک پروژه داخل sql کار می کنم که قرار است بر اساس قیمت های مربوط به رسید های یک شرکت ، به روش میانگین ، میانگین قیمت کالاها رو تو هر ردیف نمایش بده .
ولی متاسفانه روشی به ذهنم نرسیده و حتی تو اینترنت هم جایی پیدا نکردم که بتونم میانگین های بدست آمده از هر ردیف رو جایی ذخیره کنم که تو ردیف بعدی مربوط به اون کالا هم بتونم ازش استفاده کنم ، الان سه روزه که درگیر این مساله به ظاهر ساده هستم ، ممنون می شم اگر راه با یک مثال راهنماییم کنید که از چه روشی زودتر به نتیجه خواهم رسید:اشتباه::افسرده:

fakhravari
دوشنبه 11 مرداد 1400, 06:40 صبح
توی این کوری جایگزین کن جداول و اسم ستون ها رو



SELECT *,


(SUM(ISNULL(Final.varede, 0)) OVER ( PARTITION BY Final.IdKala ORDER BY Final.IdKala ASC , CAST(Final.CreateDate AS DATE) ASC ,CAST(Final.CreateDate AS TIME) ASC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING )
-
SUM(ISNULL(Final.sadere, 0)) OVER ( PARTITION BY Final.IdKala ORDER BY Final.IdKala ASC , CAST(Final.CreateDate AS DATE) ASC,CAST(Final.CreateDate AS TIME) ASC ROWS BETWEEN UNBOUNDED PRECEDING AND 0 PRECEDING ))


AS Mande

FROM
(


SELECT
i.CreateDate ,
i.InputsNumber ,
'' AS OutputsNumber ,
CAST(NULL AS DECIMAL(25, 3)) AS sadere ,
id.Quantity AS varede,
id.IdKala
FROM WareHouse.Inputs i
JOIN WareHouse.InputsDetails id ON id.IdInputs = i.Id
WHERE i.IdCompanyToAnbar=5


UNION ALL


SELECT
i.CreateDate ,
i.OutputsNumber ,
'' AS OutputsNumber ,
id.Quantity AS sadere ,
CAST(NULL AS DECIMAL(25, 3)) AS varede,
id.IdKala
FROM WareHouse.Outputs i
JOIN WareHouse.OutputsDetails id ON id.IdOutputs = i.Id
WHERE i.IdCompanyToAnbar=5


)Final
ORDER BY Final.IdKala ASC,CAST(Final.CreateDate AS DATE)ASC,CAST(Final.CreateDate AS TIME) ASC