• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

SQL Sorguda Tarih'i Excel'de tanımlatabilmek..

Katılım
23 Mayıs 2005
Mesajlar
121
Excel Vers. ve Dili
Excel 2003
Excel 2007
öncelikle rahatsızlık için kusuruma bakmayaın..
tiger kullanıcısı olarak excel'e dış veri al ile veri almaktayım velakin excelde belirlemiş olduğum tarihleri SQL'i sınırlandırabilirimiyim...
ayrıca tarih sınırlaması yaparken ek olarak sınırlamalarda mümkün olabilrimi..
kısaca birden fazla şart koyarak SQL'den gelen dataları sınırlama imkanı olabilirmi..

şimdiden yardımlarınız için teşekkür ederim..


---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------SELECT dbo.LG_311_CLCARD.CODE AS [CH.KODU], dbo.LG_311_CLCARD.DEFINITION_ AS ÜNVANI,
dbo.LG_311_01_STLINE.AMOUNT * dbo.LG_311_01_STLINE.OUTCOST AS MALİYET, dbo.LG_311_01_INVOICE.FICHENO AS [FATURA NR],
dbo.LG_311_01_INVOICE.DATE_ AS [FATURA TARİHİ], dbo.LG_311_01_STFICHE.FICHENO AS [İRS.NR.],
dbo.LG_311_01_STFICHE.DATE_ AS [İRS.TARİHİ], dbo.LG_311_ITEMS.CODE AS [MALZEME KODU],
dbo.LG_311_ITEMS.NAME AS [MALZEME AÇIKLAMASI], dbo.LG_311_ITEMS.STGRPCODE AS [GRUP KODU],
dbo.LG_311_ITEMS.SPECODE AS DURUMU, dbo.LG_311_01_STLINE.LINENET AS TUTAR, dbo.LG_311_01_INVOICE.TRCODE AS [FATURA TÜRÜ],
dbo.LG_311_ITEMS.CYPHCODE AS GRUP, dbo.LG_311_01_INVOICE.CAPIBLOCK_CREADEDDATE AS [FTR.OLUŞTURMA TARİHİ],
dbo.LG_311_01_STLINE.AMOUNT
FROM dbo.LG_311_01_STFICHE INNER JOIN
dbo.LG_311_CLCARD ON dbo.LG_311_01_STFICHE.CLIENTREF = dbo.LG_311_CLCARD.LOGICALREF INNER JOIN
dbo.LG_311_01_STLINE INNER JOIN
dbo.LG_311_01_INVOICE ON dbo.LG_311_01_STLINE.INVOICEREF = dbo.LG_311_01_INVOICE.LOGICALREF ON
dbo.LG_311_01_STFICHE.LOGICALREF = dbo.LG_311_01_STLINE.STFICHEREF INNER JOIN
dbo.LG_311_ITEMS ON dbo.LG_311_01_STLINE.STOCKREF = dbo.LG_311_ITEMS.LOGICALREF
WHERE (dbo.LG_311_01_INVOICE.CANCELLED = 0) AND (dbo.LG_311_01_STLINE.LINETYPE = 0) AND (dbo.LG_311_01_INVOICE.TRCODE = 8) AND
(dbo.LG_311_01_INVOICE.DATE_ >= ? AND dbo.LG_311_01_INVOICE.DATE_ <= ?) OR
(dbo.LG_311_01_INVOICE.TRCODE = 3)

---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------
 
SQL 'de where diye bir şartlandırma komutu vardır. Bu komutu incelemenizi öneririm. Sizin deyiminizle sınırlandırıyor. Yani şu ise ,bu ise, şöyle ise, şunların aralığında ise gibi şartlandırmalar yapabilirsiniz. ;)
 
SELECT dbo.LG_311_CLCARD.CODE AS [CH.KODU], dbo.LG_311_CLCARD.DEFINITION_ AS ÜNVANI,
dbo.LG_311_01_STLINE.AMOUNT * dbo.LG_311_01_STLINE.OUTCOST AS MALİYET, dbo.LG_311_01_INVOICE.FICHENO AS [FATURA NR],
dbo.LG_311_01_INVOICE.DATE_ AS [FATURA TARİHİ], dbo.LG_311_01_STFICHE.FICHENO AS [İRS.NR.],
dbo.LG_311_01_STFICHE.DATE_ AS [İRS.TARİHİ], dbo.LG_311_ITEMS.CODE AS [MALZEME KODU],
dbo.LG_311_ITEMS.NAME AS [MALZEME AÇIKLAMASI], dbo.LG_311_ITEMS.STGRPCODE AS [GRUP KODU],
dbo.LG_311_ITEMS.SPECODE AS DURUMU, dbo.LG_311_01_STLINE.LINENET AS TUTAR, dbo.LG_311_01_INVOICE.TRCODE AS [FATURA TÜRÜ],
dbo.LG_311_ITEMS.CYPHCODE AS GRUP, dbo.LG_311_01_INVOICE.CAPIBLOCK_CREADEDDATE AS [FTR.OLUŞTURMA TARİHİ],
dbo.LG_311_01_STLINE.AMOUNT
FROM dbo.LG_311_01_STFICHE INNER JOIN
dbo.LG_311_CLCARD ON dbo.LG_311_01_STFICHE.CLIENTREF = dbo.LG_311_CLCARD.LOGICALREF INNER JOIN
dbo.LG_311_01_STLINE INNER JOIN
dbo.LG_311_01_INVOICE ON dbo.LG_311_01_STLINE.INVOICEREF = dbo.LG_311_01_INVOICE.LOGICALREF ON
dbo.LG_311_01_STFICHE.LOGICALREF = dbo.LG_311_01_STLINE.STFICHEREF INNER JOIN
dbo.LG_311_ITEMS ON dbo.LG_311_01_STLINE.STOCKREF = dbo.LG_311_ITEMS.LOGICALREF
WHERE (dbo.LG_311_01_INVOICE.CANCELLED = 0) AND (dbo.LG_311_01_STLINE.LINETYPE = 0) AND (dbo.LG_311_01_INVOICE.TRCODE = 8) AND
(dbo.LG_311_01_INVOICE.DATE_ >= ? AND dbo.LG_311_01_INVOICE.DATE_ <= ?) OR
(dbo.LG_311_01_INVOICE.TRCODE = 3)

tairh başlangıcı ve sonunu excelde herhangi bir hücrede belirttikten sonra iki değişkene (tarih1 ve tarih2 değişkeni) atayıp bunları cümlenin içine yerleştirerek istediğinizi yapa bilirsiniz.
Kod:
tarih1 = format(Range("A1"),"yyyy-mm-dd")
tarih2 = format(Range("B1"),"yyyy-mm-dd")

dbo.LG_311_01_INVOICE.DATE_  [color=blue]BETWEEN[/color]  '[color=red]" & tarih1 & "[/color]' AND '[color=red]" & tarih2 & "[/color]'

BETWEEN iki tanım arasını almak için kullanılır.

Küçük bir not: değişkenleri verdiğiniz hüçre adreslerini kullanmak yerine hücreye ad atayaran yaparsanız sizin için ilerki çalışmalarınızda daha kolaylık saglaya bilir. Yani A1 Hüçresine Faturalar_tarih1 ad atarsanız
tarih1 = format(Sheets("Sizin Sayfa adiniz").Range("Faturalar_tarih1"),"yyyy-mm-dd") dersiniz.
 
Geri
Üst