Logo Destek
Database => SQL => Konuyu başlatan: feysummer - 09.12.2020, 16:08
-
(SELECT TOP 1 (TOTAL-DISTDISC)/(AMOUNT*(UINFO2/UINFO1)) FROM LG_018_01_STLINE l2 WHERE STOCKREF = ITM.LOGICALREF AND CANCELLED = 0 AND LINETYPE = 0 AND TRCODE IN (1,14) AND UINFO1>0 AND UINFO2>0 AND AMOUNT>0 ORDER BY DATE_ DESC, LOGICALREF DESC) AS 'Son Satınalma Birim Fiyatı'
satış raporumda malzemenin satınalma fiyatını yukarıdaki şekilde çekiyorum fakat bir malzemenin birden fazla alış ve satışı olduğu durumlarda yanlış sonuç getiriyor. Şöyleki;
01-01-2020 ALIŞ 100TL
03-01-2020 SATIŞ 200TL
15-01-2020 ALIŞ 150TL
25-01-2020 SATIŞ 300TL
müşteri bu raporu çalıştırıp 03-01-2020 tarihindeki satırı kontrol ettiğinde Son Satınalma Birim Fiyatı olarak 150TL yi görüyor. Aslında o satış 100TL ye alınan malzemeden yapılmış. Bu şartı rapora nasıl entegre edebilirim?
-
Merhaba,
İç sorgudaki STL bağlantısında WHERE içinde bir de tarihi kontrol eden bir filtre olmalı:
(SELECT TOP 1 (TOTAL-DISTDISC)/(AMOUNT*(UINFO2/UINFO1)) FROM LG_018_01_STLINE l2 WHERE STOCKREF = ITM.LOGICALREF AND CANCELLED = 0 AND LINETYPE = 0 AND TRCODE IN (1,14) AND UINFO1>0 AND UINFO2>0 AND AMOUNT>0 AND DATE_<STL.DATE_ ORDER BY DATE_ DESC, LOGICALREF DESC) AS 'Son Satınalma Birim Fiyatı'
AND DATE_<STL.DATE_ kısmı dışarıdaki STLINE tablosuna bağlı olması lazım (alias olarak ne kullandınız bilmiyorum - değiştirmeniz gerekibilir)