• DİKKAT

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

SQL de Koşulun Excel'de Belirtilmesi ???

Katılım
27 Ekim 2005
Mesajlar
108
Excel Vers. ve Dili
Excel 2003 - Türkçe
Arkadaşlar ben sql kullanarak istediğim tüm sorguları excele getiriyorum. Ama yapmak istediğim tasarladığım bir raporun değişken koşulunu (malzeme, tarih v.b) excel hücresinde belirtiyim ve soegumu o koşula göre alayım benim hep yapmak istediğim bir olay bu. Bunu yapabilen varsa örnekle açıklarsa çok sevinirim.
 
Alan isimlerini veri tipiyle birlikte ve hangi hücrelerden referans alınacağını belirtirseniz somut bir çözüm olur.
 
ÖrneĞİn
ad mİktar
Elma 25kg
Armut 50kg

BÖyle Bİr Verİ Tabani Var Ben A1 Elma YazdiĞimda A2 25 Gelsİn
Basİt Bİr Örnek Ama Benİm İstedİĞİm A1 Elma YazdiĞimda Sql Sorgumdakİ KoŞula Elmayi Manuel DeĞİl Otomatİk Yaptirmak
 
Kod:
select sum(miktar) from tablo_adi where ad =' & [a1] & "'";
 
SELECT LG_998_ITEMS.CODE, LG_998_ITEMS.NAME, LG_998_ITEMS.STGRPCODE, LG_998_ITEMS.SPECODE, LG_998_MARK.CODE
FROM TIGERDB.dbo.LG_998_ITEMS LG_998_ITEMS, TIGERDB.dbo.LG_998_MARK LG_998_MARK
WHERE LG_998_ITEMS.MARKREF = LG_998_MARK.LOGICALREF AND ((LG_998_ITEMS.STGRPCODE='TKN'))

BEN BURDA TKN Yİ G1 HÜCRESİNDE BELİRTİYORUM NASIL OLMALI BU ARADA BEN MICROSOFT QUERY İLE ALIYORUM SORGUYU
 
SELECT LG_998_ITEMS.CODE, LG_998_ITEMS.NAME, LG_998_ITEMS.STGRPCODE, LG_998_ITEMS.SPECODE, LG_998_MARK.CODE
FROM TIGERDB.dbo.LG_998_ITEMS LG_998_ITEMS, TIGERDB.dbo.LG_998_MARK LG_998_MARK
WHERE LG_998_ITEMS.MARKREF = LG_998_MARK.LOGICALREF AND ((LG_998_ITEMS.STGRPCODE='TKN'))

BEN BURDA TKN Yİ G1 HÜCRESİNDE BELİRTİYORUM NASIL OLMALI BU ARADA BEN MICROSOFT QUERY İLE ALIYORUM SORGUYU
M$ Query ile yapamazsınız. İşlemi, Excelden ADO ile yapacağınızı varsayıyorum.

Kod:
SELECT LG_998_ITEMS.CODE, LG_998_ITEMS.NAME, LG_998_ITEMS.STGRPCODE, LG_998_ITEMS.SPECODE, LG_998_MARK.CODE
FROM TIGERDB.dbo.LG_998_ITEMS LG_998_ITEMS, TIGERDB.dbo.LG_998_MARK LG_998_MARK
WHERE LG_998_ITEMS.MARKREF = LG_998_MARK.LOGICALREF AND ((LG_998_ITEMS.STGRPCODE='" & [G1] & "'))
 
Bu Şekİlde Olmuyor Mİcrosoft Query ((lg_998_items.stgrpcode='" & [g1] & "')) Tanimiyor Hata Verİyor
 
G1 DeĞerİ 'tkn' Yerİne '" & [g1] & "' Fİltrede Kullanmaya ÇaliŞiyor Verİ Gelmİyor Dolayisi İle
 
Pardon Ado İle Nasil Yaparim Kisa Bİr Bİlgİ Verİrmİsİnİz
 
Ado İle Nasil BaĞlanip Sorgu Alirim Yada Hangİ MenÜden UlaŞabİlİrİm Arama Yaptim Ama Ado İle İlgİlİ Bİr Şey Çikmadi
 
Kod:
SELECT LG_998_ITEMS.CODE, LG_998_ITEMS.NAME, LG_998_ITEMS.STGRPCODE, LG_998_ITEMS.SPECODE, LG_998_MARK.CODE
FROM TIGERDB.dbo.LG_998_ITEMS LG_998_ITEMS, TIGERDB.dbo.LG_998_MARK LG_998_MARK
WHERE LG_998_ITEMS.MARKREF = LG_998_MARK.LOGICALREF AND ((LG_998_ITEMS.STGRPCODE='" & [G1] & "'))
[/QUOTE]

" & [G1] & " Yerine " & Range("G1") & " olarak deneyin.

Karmasık olacağını düşünüyorsanız ve bence yazdığınız kodların okuna bilirliğini arttırmak istıyosanız macroyu yazarken değişkenler olarak belirterek başlayın.

Where de LG_998_ITEMS.STGRPCODE ile süzmek istediğimiz bir kod anladığım akdarıyla .

kod1 = Sheets("SayfaAdi").Range("G1") deyin

Kodu yazarkende.
" & [G1] & " yerine " & kod1 & " yazın.

tarihlerde sıkıntı cekersiniz onuda şimdiden yazım.
bastarihi = format ( Range("A1"),"yyyy-mm-dd" ) olarak belirtin.

burda yaptığımız 31.12.2007 yi 2007-12-31 formatına cevirmek SQL bunu okur. SQL den Excele cevirirkende sorun yaşarsınız bunun içinde SQL Komutu kullana bilirsiniz. Ama excel biçimlendirmeyi kullanmak daha kolaydır.

Birde değişkenleri A1 Hüçresi A2 hüçresi oalrak kullanmayın.

A1 hüçresine AD verin. Range("A1") diyeceğinize Range("VERİLENAD") bu satır sutun eklemelerinde size zorluk yaratmaması için çok kullanışlı. olır.
 
Kod:
SELECT LG_998_ITEMS.CODE, LG_998_ITEMS.NAME, LG_998_ITEMS.STGRPCODE, LG_998_ITEMS.SPECODE, LG_998_MARK.CODE
FROM TIGERDB.dbo.LG_998_ITEMS LG_998_ITEMS, TIGERDB.dbo.LG_998_MARK LG_998_MARK
WHERE LG_998_ITEMS.MARKREF = LG_998_MARK.LOGICALREF AND ((LG_998_ITEMS.STGRPCODE='" & [G1] & "'))

" & [G1] & " Yerine " & Range("G1") & " olarak deneyin.

Karmasık olacağını düşünüyorsanız ve bence yazdığınız kodların okuna bilirliğini arttırmak istıyosanız macroyu yazarken değişkenler olarak belirterek başlayın.

Where de LG_998_ITEMS.STGRPCODE ile süzmek istediğimiz bir kod anladığım akdarıyla .

kod1 = Sheets("SayfaAdi").Range("G1") deyin

Kodu yazarkende.
" & [G1] & " yerine " & kod1 & " yazın.

tarihlerde sıkıntı cekersiniz onuda şimdiden yazım.
bastarihi = format ( Range("A1"),"yyyy-mm-dd" ) olarak belirtin.

burda yaptığımız 31.12.2007 yi 2007-12-31 formatına cevirmek SQL bunu okur. SQL den Excele cevirirkende sorun yaşarsınız bunun içinde SQL Komutu kullana bilirsiniz. Ama excel biçimlendirmeyi kullanmak daha kolaydır.

Birde değişkenleri A1 Hüçresi A2 hüçresi oalrak kullanmayın.

A1 hüçresine AD verin. Range("A1") diyeceğinize Range("VERİLENAD") bu satır sutun eklemelerinde size zorluk yaratmaması için çok kullanışlı. olır.[/quote]

Hocam ; Mükemmel bir konuya temas ettiğiniz için teşekkür ederim...Fakat ne kadar uğraştımsa da EXCEL Hücresinden MSQUERY içerisine TARİH formatını yerleştiremedim....SYNTAX ERROR veriyor sürekli....

Kod aşağıdaki gibidir...


SELECT
LG_086_CLCARD.CODE AS CH_Kodu,
LG_086_CLCARD.DEFINITION_ AS Ünvanı,
SUM(DISTINCT LG_086_01_INVOICE.NETTOTAL) AS TUTAR,
SUM(LG_086_01_STLINE.AMOUNT * LG_086_01_STLINE.OUTCOST) AS [Toplam Maliyet],
SUM(DISTINCT LG_086_01_INVOICE.NETTOTAL) - SUM(LG_086_01_STLINE.AMOUNT * LG_086_01_STLINE.OUTCOST) AS KAR
FROM
LG_086_CLCARD INNER JOIN LG_086_01_INVOICE ON LG_086_CLCARD.LOGICALREF = LG_086_01_INVOICE.CLIENTREF INNER JOIN LG_086_01_STLINE ON LG_086_01_INVOICE.LOGICALREF = LG_086_01_STLINE.INVOICEREF WHERE (LG_086_01_INVOICE.DATE_ = CONVERT(DATETIME, '2008-02-04 00:00:00', 102)) AND (LG_086_01_INVOICE.TRCODE = 8) AND (LG_086_01_INVOICE.CANCELLED = 0) AND (LG_086_01_STLINE.LINETYPE = 0)
GROUP BY LG_086_CLCARD.CODE, LG_086_CLCARD.DEFINITION_
ORDER BY LG_086_CLCARD.CODE

H5 hücresinde 04.02.2008 bilgisini girdiğimde Sorgunun çalışmasını istiyorum...tabiki önceki günleri ve sonraki günleride gidrdiğimde SQL kodunun H5 hücresine girdiğim TARİHİ algılaması gerekir , şimdiden yardımlarınız için teşekkürederim....

Bu arada , yukarıdaki SQL Kodu LOGO veritabanında Malzeme Satış Karlılıklarını görmeye yarayan koddur...Amacım Günlük Satış Karlılıkların ( Fon Maliyeti Hariç) görebilmek , gösterebilmektir...

Konu ile ilgilisi yok ama , Karlılıklıların görülebilmesi için HER GÜN COST çalıştırılması gerekir ve ancak bir gün öncesinin KARLILIĞINI görebilirsiniz , LSU arkadaşlara duyurulur :)

Kolay gelsin , iyi çalışmalar...
 
Son düzenleme:
Öff öff.. yıllar sonra girdim bu foruma yine çıkacam. çocukken bir hostese bilgisayar satmıştım.

Makinayı kurdum, çıkacakken hostes bir ricada bulundu : "nasıl kullanıldığını bir gösterseniz?" Sanki süpürge makinası satın almıştı. Ben de tüm sabrımı toplayıp nasıl açılıp kapandığını, yeni dosyanın nasıl oluştuğunu/silindiğini, internete nasıl girildiğini anlattım.

Şimdi kardeş, MS SQL'i bir kere açıp, 1/2 saat incelesen, elindeki logonun herhangi bir raporunu MSSQL de 5 dakika takip etsen şu yukarıdaki gibi komik ötesi sorular sormazdın.

Kaldı ki Standart SQL le de uğraşmayıp bir de 3.parti den ado yapmak istiyorsun ;o)
 
Öff öff.. yıllar sonra girdim bu foruma yine çıkacam. çocukken bir hostese bilgisayar satmıştım.

Makinayı kurdum, çıkacakken hostes bir ricada bulundu : "nasıl kullanıldığını bir gösterseniz?" Sanki süpürge makinası satın almıştı. Ben de tüm sabrımı toplayıp nasıl açılıp kapandığını, yeni dosyanın nasıl oluştuğunu/silindiğini, internete nasıl girildiğini anlattım.

Şimdi kardeş, MS SQL'i bir kere açıp, 1/2 saat incelesen, elindeki logonun herhangi bir raporunu MSSQL de 5 dakika takip etsen şu yukarıdaki gibi komik ötesi sorular sormazdın.

Kaldı ki Standart SQL le de uğraşmayıp bir de 3.parti den ado yapmak istiyorsun ;o)

Sen nasıl birisisin ya ... Bu ne kibir, bu ne yüksekten bakıştır böyle ... Soru soran üyeleri aşağılama hakkını kim veriyor size ? Yazık ...
 
yok kardeş.. biz sahiden sahi analiz yaparak, analitik çalışalım, kafayı patlatalım.

Bir başka arkadaş.. benim yerime kafa patlatanlar olmuştur.. ben bir sorayım bir "yardım sever" atlar ne de olsa diyordur.

yok sorduğu soru sahiden yanında bir uğraşmışlık getirse "canım feda" fakat milletçe löpçü-hazırcı ve tembel olmuşuz.. beni en çok üzen ise bilişim dünyasında da böyle olması!
 
yok kardeş.. biz sahiden sahi analiz yaparak, analitik çalışalım, kafayı patlatalım.

Bir başka arkadaş.. benim yerime kafa patlatanlar olmuştur.. ben bir sorayım bir "yardım sever" atlar ne de olsa diyordur.

yok sorduğu soru sahiden yanında bir uğraşmışlık getirse "canım feda" fakat milletçe löpçü-hazırcı ve tembel olmuşuz.. beni en çok üzen ise bilişim dünyasında da böyle olması!

Ukala kardeşim sqlinvader ; Tespitlerini benim için mi yaptın ? Tam da bu tespitleri yapılacak adama yapmışsın bravo ! , Sen bir kere benim 3.cü partiden ADO yapma gerekliliğimi anlamamışsın , öfffleyip pufflamanı o yüsden doğal karşılıyorum.ilerizekalı arkadaşım, ben geriye yönelik , her hangi bir tarihdeki KARLILIK raporunu almak istediğimde sürekli SQL kodundaki tarihi elimle değiştirmek istemiyorum....onun yerine böyle bir çalışma yapıyorum ki zaman kazandıran bir çalışma yapmış olayım....vakit bulduğumda seninle ayrıyetden de ilgileneceğim....:)

hakkımda çok sey merak edersen....

www.logodestek.gen.tr
www.lsuersoy.gen.tr
www.halkalikoyu.com
www.marmaralicotanaklar.net

adreslerine bakabilirsin.
 
Geri
Üst