Tiger2 excelde Sql sorgusu.

Gönderen Konu: Tiger2 excelde Sql sorgusu.  (Okunma sayısı 1379 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı zamzam

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Tiger2 excelde Sql sorgusu.
« : 09.04.2009, 10:29 »
  Merhabalar;
  Aşağıda bir sql sorgum var.
 Bu sorgumda belirttiğim tarihten sonraki kayıt yapılan perakende ve toptan satış faturalarının içerdiği ürünler ve bazı bilgileri bulunmakta.
 
Kod: [Seç]
SELECT LG_009_ITEMS.CODE, LG_009_ITEMS.NAME, Sum((LG_009_01_STLINE.AMOUNT/LG_009_01_STLINE.UINFO1)*LG_009_01_STLINE.UINFO2) AS 'miktar', LG_009_PRCLIST.PRICE, (Sum((LG_009_01_STLINE.AMOUNT/LG_009_01_STLINE.UINFO1)*LG_009_01_STLINE.UINFO2))*LG_009_PRCLIST.PRICE AS 'TUTAR', LG_009_ITEMS.VAT AS 'KDV', (((Sum((LG_009_01_STLINE.AMOUNT/LG_009_01_STLINE.UINFO1)*LG_009_01_STLINE.UINFO2))*LG_009_PRCLIST.PRICE)*LG_009_ITEMS.VAT)/100 AS 'KDV TUTAR', (((Sum((LG_009_01_STLINE.AMOUNT/LG_009_01_STLINE.UINFO1)*LG_009_01_STLINE.UINFO2))*LG_009_PRCLIST.PRICE))+(((Sum((LG_009_01_STLINE.AMOUNT/LG_009_01_STLINE.UINFO1)*LG_009_01_STLINE.UINFO2))*LG_009_PRCLIST.PRICE)*LG_009_ITEMS.VAT)/100 AS 'DAHİL TUTAR'
FROM LKSDB1.dbo.LG_009_01_INVOICE LG_009_01_INVOICE, LKSDB1.dbo.LG_009_01_STLINE LG_009_01_STLINE, LKSDB1.dbo.LG_009_ITEMS LG_009_ITEMS, LKSDB1.dbo.LG_009_PRCLIST LG_009_PRCLIST
WHERE LG_009_01_STLINE.STOCKREF = LG_009_ITEMS.LOGICALREF AND LG_009_01_INVOICE.LOGICALREF = LG_009_01_STLINE.INVOICEREF AND LG_009_PRCLIST.CARDREF = LG_009_ITEMS.LOGICALREF AND ((LG_009_01_INVOICE.TRCODE=1) AND (LG_009_ITEMS.ACTIVE=0))
GROUP BY LG_009_ITEMS.CODE, LG_009_ITEMS.NAME, LG_009_PRCLIST.PRICE, LG_009_ITEMS.VAT, LG_009_PRCLIST.PTYPE, LG_009_PRCLIST.ENDDATE, LG_009_01_INVOICE.CANCELLED, LG_009_PRCLIST.ACTIVE, LG_009_01_INVOICE.CAPIBLOCK_CREADEDDATE
HAVING (LG_009_PRCLIST.PTYPE=1) AND (LG_009_PRCLIST.ENDDATE={ts '2009-12-31 00:00:00'}) AND (LG_009_01_INVOICE.CANCELLED=0) AND (LG_009_PRCLIST.ACTIVE=0) AND (LG_009_01_INVOICE.CAPIBLOCK_CREADEDDATE>{ts '2009-04-07 00:00:00'})
ORDER BY LG_009_ITEMS.NAME

    Buradaki sorun ise şu ;
Kod: [Seç]
(LG_009_01_INVOICE.CAPIBLOCK_CREADEDDATE>{ts '2009-04-07 00:00:00'})
  bu kodda belirttiğim tarihi hergün değiştirmemiz gerekiyor.
   Sayın Lsuersoy'un http://www.excel.web.tr/f66/sql-ile-veri-alma-t64961.html adresinde buna yakın bir konu gördüm.
  Bu konuda vba kodlarıyla SQL sorgusu alınabiliyor. Ama istediğim şeye maalesef uyarlayamadım.
  İlgili kaydın yaratıldığı tarih kriterini excel'de herhangi bir sheet'te elle yazdığım tarih ile değiştirmesi gerekiyor.
 Yani ya tüm sql sorgusunu benim ilgili hücreye yazdığım tarih ile güncelleyecek, yada excel'de zaten var olan sorgumda hücreye yazdığım tarihi değiştirecek.
   
    Böylelikle hergün tekrar ettiğimiz Sorgu düzenle deyip CAPIBLOCK_CREADEDDATE kriterini değiştirecek bir VBA kodu gerekiyor...

    Yardımlarınız için şimdiden teşekkürler.

Çevrimdışı LsuErsoy

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 33
  • Kişisel ileti
Tiger2 excelde Sql sorgusu.
« Yanıtla #1 : 09.04.2009, 12:27 »
Bu konuyu incelerseniz , istediğinizi gerçekleştirebilirsiniz

http://www.excelvba.net/viewtopic.php?f=16&t=2378

Diyelim ki Tarih bilgisini , aktif çalışma sayfasındaki (sheet) , B1 hücresine yazacaksınız...o zaman syntax aşağıdaki gibi olmalı...

tarih1 = Format(Range("B1").Value, "yyyy-mm-dd")
tarih2 = Format(Range("C1").Value, "yyyy-mm-dd")

s = "SELECT SUM(LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_KSLINES.AMOUNT) AS Giren "
s = s & "FROM LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_KSCARD INNER JOIN "
s = s & "LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_KSLINES ON LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_KSCARD.LOGICALREF = LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_KSLINES.CARDREF "
s = s & "WHERE (LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_KSLINES.DATE_ BETWEEN CONVERT(DATETIME, '" & tarih1 & "', 102) AND CONVERT(DATETIME, '" & tarih2 & "', 102)) AND"
s = s & "(LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_KSLINES.SIGN = 0) AND (LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_KSCARD.LOGICALREF = 1)"
« Son Düzenleme: 09.04.2009, 12:31 Gönderen: LsuErsoy »

Çevrimdışı zamzam

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: Tiger2 excelde Sql sorgusu.
« Yanıtla #2 : 09.04.2009, 15:59 »
 öncelikle cevabınız için teşekkürler;

   Sayın Lsuersoy aslında bu işi daha kısa yolla yani sadece x sheetinde var olan sql sorgusunun tarih kriterini aaa sheetinin b1 hücresindeki tarih aralığı ile değiştirecek olsak nasıl olur?

Çevrimdışı erhan2484

  • Uzman Kullanıcı
  • Logo Uzmanı
  • *****
  • Karma: 1
Ynt: Tiger2 excelde Sql sorgusu.
« Yanıtla #3 : 09.04.2009, 21:29 »
galiba o konuyu bende gördüm hatta sitede lsuersoy ile ileri zekalı bir arkadaşın atışması da vardı :)