SQL Sorguda Tarih'i Excel'de tanımlatabilmek.. [Archive] - Excel Forum

PDA

Tüm Versiyonu Göster : SQL Sorguda Tarih'i Excel'de tanımlatabilmek..


oburs
23-12-2008, 10:31
ö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)

---------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------

Tarkan VURAL
23-01-2009, 16:37
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. ;)

Rafet
12-02-2009, 16:26
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.

tarih1 = format(Range("A1"),"yyyy-mm-dd")
tarih2 = format(Range("B1"),"yyyy-mm-dd")

dbo.LG_311_01_INVOICE.DATE_ BETWEEN '" & tarih1 & "' AND '" & tarih2 & "'


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.


Özel Arama