Logo Destek

Database => SQL => Konuyu başlatan: Hüseyin FERAHLI - 25.12.2019, 14:37

Başlık: Sql sorguda öndeki dönemlere ait veriler
Gönderen: Hüseyin FERAHLI - 25.12.2019, 14:37
   
  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 '%'
Başlık: Ynt: Sql sorguda öndeki dönemlere ait veriler
Gönderen: ByBirol® - 25.12.2019, 16:21
Burda önemli olan sonuçtur , yani UNION ALL ile ulaşabiliyorsunuz buda olur , pek çok yöntem vardır , sub query ,cursor ile geçici tablo , dinamik view vs .