Merhaba arkadaşlar,
Aşağıda yazmış olduğum sorguyu Union all kullanmadan eski dönemlere ait verileri nasıl getirebilirim FOR, WHILE gibi döngülerle olurmu olur ise bu sorgum üzerinden bir örnek rica edebilirmiyim. Şimdiden teşekkürler.
select
STLINE.DATE_ AS 'Fatura Tarihi',
'Fatura No'=CASE
WHEN INVOICE.EINVOICE=0 THEN SUBSTRING(INVOICE.DOCODE,0,25)
WHEN INVOICE.TRCODE=9 THEN INVOICE.FICHENO
WHEN INVOICE.TRCODE=1 THEN INVOICE.DOCODE
WHEN INVOICE.EINVOICE=1 THEN INVOICE.FICHENO
WHEN INVOICE.EINVOICE=2 THEN INVOICE.FICHENO END ,
CLCARD.DEFINITION_ AS 'Müşteri Unvanı',
ITEMS.NAME AS 'Ürün Adı',
STLINE.AMOUNT AS 'Miktar',
BIRIM.NAME 'Birim',
CONVERT(decimal(18,2),STLINE.PRICE) AS 'Birim Fiyat',
CONVERT(decimal(18,2),STLINE.TOTAL) AS 'Bürüt Toplam',
CONVERT(decimal(18,2),STLINE.DISTDISC) AS 'İskonto Toplamı',
CONVERT(decimal(18,2),ISNULL((STLINE.VATMATRAH),0)) AS 'Kdv Hariç Toplam',
CONVERT(decimal(18,2),ISNULL((STLINE.VATMATRAH/STLINE.AMOUNT),0)) AS 'Kdv Hariç Adet Fiyatı',
ITEMS.SHELFLIFE AS 'Raf Ömrü',
CASE WHEN DATEDIFF(DAY,STLINE.DATE_, GETDATE()) < ITEMS.SHELFLIFE THEN '' ELSE 'Ömrü Geçmış' END KONTROL
from LG_002_12_STLINE STLINE
LEFT JOIN LG_002_12_INVOICE INVOICE ON STLINE.INVOICEREF = INVOICE.LOGICALREF
LEFT JOIN LG_002_ITEMS ITEMS ON STLINE.STOCKREF = ITEMS.LOGICALREF
LEFT JOIN LG_002_CLCARD CLCARD ON STLINE.CLIENTREF = CLCARD.LOGICALREF
LEFT JOIN LG_002_UNITSETL BIRIM (NOLOCK) ON STLINE.UOMREF = BIRIM.LOGICALREF
where
STLINE.LINETYPE=0 AND
STLINE.TRCODE LIKE '%' AND
CLCARD.DEFINITION_ LIKE '%' AND
ITEMS.NAME LIKE '%'