Merhabalar,
Aşağıda vermiş olduğum SQL sorgusunu faturalarımı çekmek için kullanıyorum.
Şimdilerde faturanın kesildiği tarihteki ürün fiyatına ihtiyacım oldu.
Bu sorgu üzerinde ürün kodu ve açıklamasının yanında o tarihteki tanımlı satış fiyatını görmek istiyorum.
FROM kısmına ek olarak
LEFT OUTER JOIN LG_100_PRCLIST AS PRC (NOLOCK) ON PRC.CARDREF = ITM.LOGICALREF
AND INVFC.DATE_ BETWEEN PRC.BEGDATE AND PRC.ENDDATE
AND PRC.PTYPE = 2
kısmını ekledim. Ancak bu sefer de önceki raporlara göre adet bazlı bazen eksiklik bazen fazlalık çıkar oldu.
Neyi eksik yapıyorum çözemedim.
Yardımlarınız için teşekkürler.
--FATURA SQL
use TIGERPLUSBOS
SET ROWCOUNT 0
SELECT
CASE WHEN INVFC.TRCODE=8 THEN 'SATIŞ'
WHEN INVFC.TRCODE=3 THEN 'SATIŞ İADE'
WHEN INVFC.TRCODE=7 THEN 'PERAKENDE SATIŞ'
WHEN INVFC.TRCODE=2 THEN 'PERAKENDE SATIŞ İADE' END AS 'FATURA TÜRÜ',
CASE WHEN INVFC.CANCELLED=0 THEN 'HAYIR'
WHEN INVFC.CANCELLED=1 THEN 'İPTAL ' END AS ' FATURA İPTAL DURUMU',
INVFC.FICHENO AS 'BELGE NO',
CONVERT(VARCHAR(10), INVFC.DATE_, 103) AS 'TARİH',
--INVFC.SOURCEINDEX AS 'AMBAR NO',
CLNTC.CODE AS 'CARİ KODU',
CLNTC.DEFINITION_ AS 'CARİ ÜNVANI',
CLNTC.TAXNR AS 'VERGİ NUMARASI',
CLNTC.TAXOFFICE AS 'VERGİ DAİRESİ',
CLNTC.TCKNO AS 'TC KİMLİK NO',
CLNTC.SPECODE AS 'ÖZEL KOD',
CASE WHEN STLINE.LINETYPE=0 THEN 'STOK'
WHEN STLINE.LINETYPE=4 THEN 'HİZMET'
END AS 'STOK/HİZMET',
CASE WHEN STLINE.LINETYPE=0 THEN ITM.CODE
WHEN STLINE.LINETYPE=4 THEN (SELECT CODE FROM LG_100_SRVCARD WHERE STLINE.STOCKREF= LG_100_SRVCARD.LOGICALREF)
END AS 'KOD',
--M.CODE AS 'MARKA',
CASE WHEN STLINE.LINETYPE=0 THEN ITM.NAME
WHEN STLINE.LINETYPE=4 THEN (SELECT DEFINITION_ FROM LG_100_SRVCARD WHERE STLINE.STOCKREF= LG_100_SRVCARD.LOGICALREF)
END AS 'MALZEME AÇIKLAMASI',
ITM.STGRPCODE [Ürün Grup Kodu],
ITM.SPECODE [Ürün Özel Kodu],
ITM.SPECODE2 [Ürün Özel Kodu 2],
ITM.SPECODE3 [Ürün Özel Kodu 3],
ITM.SPECODE4 [Ürün Özel Kodu 4],
ITM.SPECODE5 [Ürün Özel Kodu 5],
STLINE.AMOUNT AS 'ADET',
STLINE.PRICE / CASE STLINE.UINFO2 WHEN 0 THEN 1 ELSE STLINE.UINFO2 END AS 'FİYAT',
STLINE.TOTAL AS 'TOPLAM',
ISNULL(IND_1.DISCPER,0) as 'İNDİRİM ORANI ',
--ISNULL(IND_2.DISCPER,0) as 'İNDİRİM ORANI 2',
--ISNULL(IND_3.DISCPER,0) as 'İNDİRİM ORANI 3',
--ISNULL(IND_4.DISCPER,0) as 'İNDİRİM ORANI 4',
--ISNULL(IND_5.DISCPER,0) as 'İNDİRİM ORANI 5',
--ISNULL(IND_6.DISCPER,0) as 'İNDİRİM ORANI 6',
STLINE.DISTCOST AS 'İNDİRİM MİKTARI',
STLINE.LINENET AS 'NET',
STLINE.VAT AS 'KDV ORANI',
STLINE.VATAMNT AS 'KDV MİKTARI',
STLINE.LINENET + STLINE.VATAMNT as 'GENEL TOPLAM',
PAYPL.CODE
FROM
LG_100_13_INVOICE INVFC WITH(NOLOCK)
LEFT OUTER JOIN LG_100_CLCARD CLNTC WITH(NOLOCK) ON (INVFC.CLIENTREF = CLNTC.LOGICALREF)
LEFT OUTER JOIN LG_100_PAYPLANS PAYPL WITH(NOLOCK) ON (INVFC.PAYDEFREF = PAYPL.LOGICALREF)
LEFT OUTER JOIN LG_100_13_STLINE STLINE WITH(NOLOCK) on STLINE.INVOICEREF = INVFC.LOGICALREF
LEFT OUTER JOIN LG_100_ITEMS ITM WITH(NOLOCK) on ITM.LOGICALREF = STLINE.STOCKREF
LEFT JOIN LG_100_13_STLINE IND_1 (NOLOCK) ON IND_1.PARENTLNREF = STLINE.LOGICALREF and IND_1.STFICHELNNO=STLINE.STFICHELNNO +1 and IND_1.LINETYPE = 2
LEFT JOIN LG_100_13_STLINE IND_2 (NOLOCK) ON IND_2.PARENTLNREF = STLINE.LOGICALREF and IND_2.STFICHELNNO=STLINE.STFICHELNNO +2 and IND_2.LINETYPE = 2
WHERE
(INVFC.CANCELLED = 0) AND ((INVFC.DATE_ >= CONVERT(dateTime, '8-1-2016', 101))
AND (INVFC.DATE_ <= CONVERT(dateTime, '8-8-2016', 101)))
AND (INVFC.TRCODE IN (2,3,7,8,9,11,14)) AND (INVFC.STATUS IN (0,1)) AND (INVFC.DEPARTMENT IN (0)) AND (INVFC.BRANCH IN (0,50)) AND (INVFC.FACTORYNR IN (0)) AND (INVFC.DEVIR IN (0))
ORDER BY
INVFC.DATE_, INVFC.FICHENO, INVFC.DOCODE, INVFC.TIME_, INVFC.TRCODE