Tüm Ürünleri Fiyat ve Stokları ile Listele – Query

Bugün yine kallavi bir rapor talebi ile karşı karşıyayım 🙂 Yönetim, tüm malzemelerin toplam stok miktarlarının ve tanımlı satış fiyatlarının listelendiği bir tablo istedi. Uzun uğraşlar sonucu aşağıdaki query i derledim ve burada yayınlamaya karar verdim.

 

SELECT
I.CODE AS ‘URUN_KODU’ ,
I.NAME AS ‘URUN_ADI’,
I.STGRPCODE AS ‘GRUP KODU’,
I.SPECODE AS ‘ÖZEL KODU’,
I.LOGICALREF ,
ISNULL(PR.PRICE,0)AS FIYAT,
ISNULL(PR.CURRENCY,0) AS DOVIZ,
sUM ((CASE S.TRCODE WHEN 1 THEN S.AMOUNT*UINFO2 ELSE 0 END )+ (CASE S.TRCODE WHEN 13 THEN S.AMOUNT*UINFO2 ELSE 0 END)+
(CASE F.TRCODE WHEN 3 THEN S.AMOUNT*UINFO2 ELSE 0 END )+(CASE S.TRCODE WHEN 14 THEN S.AMOUNT*UINFO2 ELSE 0 END)+
(CASE S.TRCODE WHEN 50 THEN S.AMOUNT*UINFO2 ELSE 0 END)) +
SUM((CASE F.TRCODE WHEN 8 THEN S.AMOUNT*UINFO2 ELSE 0 END)+(CASE S.TRCODE WHEN 6 THEN S.AMOUNT*UINFO2 ELSE 0 END)+
(CASE S.TRCODE WHEN 12 THEN S.AMOUNT*UINFO2 ELSE 0 END)+(CASE S.TRCODE WHEN 11 THEN S.AMOUNT*UINFO2 ELSE 0 END)+
(CASE S.TRCODE WHEN 51 THEN S.AMOUNT*UINFO2 ELSE 0 END)+(CASE S.TRCODE WHEN 20 THEN S.AMOUNT*UINFO2 ELSE 0 END)) AS ‘STOK’
from LG_016_ITEMS AS I LEFT JOIN
LG_016_01_STLINE AS S ON I.LOGICALREF=S.STOCKREF AND I.ACTIVE=’0′ and S.CANCELLED=’0′ LEFT JOIN
LG_016_01_INVOICE AS F ON S.INVOICEREF=F.LOGICALREF LEFT JOIN
LG_016_PRCLIST AS PR ON I.LOGICALREF=PR.CARDREF and PR.PTYPE=2 LEFT JOIN
LG_016_01_STINVTOT AS ST ON I.LOGICALREF=ST.STOCKREF
GROUP BY I.CODE,I.NAME,I.STGRPCODE,I.SPECODE,PR.PRICE,PR.CURRENCY,PR.PRIORITY,I.LOGICALREF,PR.PRICE
ORDER BY URUN_KODU ASC

Query ‘i kopyalıyorsanız kesme işaretlerini düzeltmeniz gerekiyor(bende temadan dolayı farklı bir karakter ile gösteriliyor).

Ayrıca,

LG_xxx alanlarını kendi tablo adlarınıza göre düzenlemelisiniz.

Oh oh maaşallah dediğinizi duyar gibiyim. Bende aynen öyle demiştim. SQL ile çalışmak gerçekten çok keyifli.

Faydalı olması dileğiyle…

5 Comments

Leave a Comment

Your email address will not be published.