SQL Cümlesinde Case End Kullanımı

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Merhaba,

DBASE veritanından veri çekerken aşağıdaki linkteki Case End karar yapısını kullanmaya çalışıyorum.

http://www.excel.web.tr/showthread.php?t=41041

Sanırım yanlış yaptığım bir yer var.Çünkü doğru bir sonuça bir türlü ulaşamadım.

Kod:
SQLStr = "SELECT PERSONEL.SİCİL,[B]CASE PERSONEL.SİCİL WHEN 100 THEN 'Yüz'  Else 'Hata' End AS DURUMU[/B],PERSONEL.ADI,PERSONEL.SOYADI,PERSONEL.GİRİŞ,HAREKET.TARIH,HAREKET.SAAT FROM PERSONEL,HAREKET WHERE PERSONEL.SİCİL=HAREKET.SİCİL"
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Sn.Ripek, Aşağıdaki gibi dener misiniz?

Kod:
SQLStr = "[COLOR=blue]SELECT[/COLOR] PERSONEL.SİCİL," _
              & "PERSONEL.ADI," _
              & "PERSONEL.SOYADI," _
              & "PERSONEL.GİRİŞ," _
              & "HAREKET.TARIH," _
              & "HAREKET.SAAT " _
                 & "[COLOR=blue]CASE[/COLOR] PERSONEL.SİCİL " _
                       & "[COLOR=blue]WHEN[/COLOR] 100 THEN 'Yüz' " _
                       & "[COLOR=blue]ELSE[/COLOR] 'Hata' " _
                 & "[COLOR=blue]END[/COLOR] " _
                 & "[COLOR=blue]AS[/COLOR] DURUMU, " _
              & "[COLOR=blue]FROM[/COLOR] PERSONEL,HAREKET " _
              & "[COLOR=blue]WHERE[/COLOR] PERSONEL.SİCİL=HAREKET.SİCİL"
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

DBASE veritanından veri çekerken aşağıdaki linkteki Case End karar yapısını kullanmaya çalışıyorum.

http://www.excel.web.tr/showthread.php?t=41041

Sanırım yanlış yaptığım bir yer var.Çünkü doğru bir sonuça bir türlü ulaşamadım.

Kod:
SQLStr = "SELECT PERSONEL.SİCİL,[B]CASE PERSONEL.SİCİL WHEN 100 THEN 'Yüz'  Else 'Hata' End AS DURUMU[/B],PERSONEL.ADI,PERSONEL.SOYADI,PERSONEL.GİRİŞ,HAREKET.TARIH,HAREKET.SAAT FROM PERSONEL,HAREKET WHERE PERSONEL.SİCİL=HAREKET.SİCİL"

Selam,

Başlıktaki yazıda Standart SQL demiştim. Şunu iyi bilmek gerekir ki, her veritabanı sisteminin tanıdığı SQL farklıdır.

Sözkonusu başlıkta Standart SQL derken Firebird için geçerli idi.

Büyük ihtimalle DBASE böyle bir karar yapısını tanımıyor. Malesef bu karar yapısı MS Jet SQL' da da yoktur.(Access)
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Buna rağmen "IIF" kullanabileceğinizi tahmin ediyorum. Access'te kullanılabiliyor.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Maalesef olmadı.

Method 'Open' of object '_Recordset' failed hatası veriyor.

Kodlar aşağıdadır.

Kod:
SQLStr = "SELECT PERSONEL.SİCİL," _
              & "PERSONEL.ADI," _
              & "PERSONEL.SOYADI," _
              & "PERSONEL.GİRİŞ," _
              & "HAREKET.TARIH," _
              & "HAREKET.SAAT " _
                 & "CASE PERSONEL.SİCİL " _
                       & "WHEN 100 THEN 'Yüz' " _
                       & "ELSE 'Hata' " _
                 & "END " _
                 & "AS DURUMU, " _
              & "FROM PERSONEL,HAREKET " _
              & "WHERE PERSONEL.SİCİL=HAREKET.SİCİL"
 
Set Kayit1 = CreateObject("ADODB.Recordset")
    With Kayit1
        .ActiveConnection = Baglanti
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        .Source = SQLStr
        .Open
    End With
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Kod:
SQLStr = "SELECT PERSONEL.SİCİL," _
              & "PERSONEL.ADI," _
              & "PERSONEL.SOYADI," _
              & "PERSONEL.GİRİŞ," _
              & "HAREKET.TARIH," _
              & "HAREKET.SAAT, " _
                 & "iif (PERSONEL.SİCİL = 100, 'Yüz', 'Hata') " & _
                 & "AS DURUMU " _
              & "FROM PERSONEL,HAREKET " _
              & "WHERE PERSONEL.SİCİL=HAREKET.SİCİL"
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Selam,

. Şunu iyi bilmek gerekir ki, her veritabanı sisteminin tanıdığı SQL farklıdır.

Konu anlaşılmıştır.Bende tahmin etmiştim.

IIF fonksiyonunu da denemiştim.Yine sonuç aynı.

Teşekkürler.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
IIF fonksiyonu doğru çalışdı.Fakat Case yine çalışmadı.

Problem 100 sayısından kaynaklanıyor olabilir.Bu alan metin veya başka bir türde olduğu için hata verebilir.
 
Katılım
3 Temmuz 2007
Mesajlar
1
Excel Vers. ve Dili
TÜRKÇE - OFFİCE XP
çooooooooooooooook sağolun
 
Üst