FireBird - Sql

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
dost
Üye
Mesajlar: 104
Kayıt: 08 Oca 2004 11:33

FireBird - Sql

Mesaj gönderen dost »

Merhaba,

Kod: Tümünü seç

SELECT UNVANI FROM
 (SELECT T1.UNVANI,
  (SELECT COUNT(*) FROM IZIN_TABLO T2 WHERE T2.UNVANI=T1.UNVANI AND T2.IZIN_TURU='SENELİK İZİN') AS SENELIK_IZIN, COUNT(*) AS TOPLAM
   FROM IZIN_TABLO T1
   GROUP BY T1.UNVANI)
GROUP BY UNVANI
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 2.
SELECT.

Access de çalışan kodu firebird de çalıştıramadım, ilk select ifadesini kabul etmiyor.
koda yardımcı olabilirmisiniz?

Teşekkürler
onaydin

Mesaj gönderen onaydin »

Merhaba
Firebird derived table ı desteklemiyor. (Şu an için)
Almak istediğiniz sonuç nedir, örnek bir kaç veri ile açıklarsanız
belki uygun cümleyi yazabiliriz.
dost
Üye
Mesajlar: 104
Kayıt: 08 Oca 2004 11:33

Mesaj gönderen dost »

UNVANI S.İZİN
A-----------1
B-----------3
C-----------6

şeklinde ünvanı tekrarlamadan tek kalem olarak
istatistik almak istiyorum.

Teşekkürler
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

SELECT UNVANI FROM 
 (SELECT T1.UNVANI, 
  (SELECT COUNT(*) FROM IZIN_TABLO T2 WHERE T2.UNVANI=T1.UNVANI AND T2.IZIN_TURU='SENELİK İZİN') AS SENELIK_IZIN, COUNT(*) AS TOPLAM 
   FROM IZIN_TABLO T1 
   GROUP BY T1.UNVANI) A // ->'A'; BİR İSİM VERMELİSİNİZ
GROUP BY UNVANI
şeklinde dener misiniz?
onaydin

Mesaj gönderen onaydin »

AS da eklese değişen birşey olmayacak Firebird de kullanmak istiyor
o da onu desteklemiyor.

Yazılan veriye uygun cevap şu şekilde;

Kod: Tümünü seç

SELECT UNVAN, count(*) 
FROM  IZIN_TABLO 
WHERE IZIN_TURU='SENELİK İZİN'
GROUP  BY UNVAN
Ayrıca Ünvan alanının IZIN_TABLO içinde bulunması da tasarım hatası.
dost
Üye
Mesajlar: 104
Kayıt: 08 Oca 2004 11:33

Mesaj gönderen dost »

Naile hanım sql kodunu ibexpert ile denedim. Ancak, FireBird'de çalışmıyor, aynı kodu daha önce sizin belirttiğiniz şekilde düzenleyerek,
vt access de sorunsuz çalıştırmıştım.

FireBird'de de çalışmış olsaydı çok güzel olacaktı, çünkü izin_turu alanında 5 seçenek var ve her birini tekrarlamadan tek kalem olarak toplaması gerekiyor. Sonuçu da iki tarih arası sorgulayarak almak istiyordum.

İlgilenen herkese çok teşekkür ederim.
onaydin

Mesaj gönderen onaydin »

Hocam madem beş tane farklı değeri görmek istiyorsun
soruyu ona göre sorman gerekmez mi.
Onunda yapılışı var firebird de, hemde forumda bahsi geçti.
dost
Üye
Mesajlar: 104
Kayıt: 08 Oca 2004 11:33

Mesaj gönderen dost »

Hocam haklısın soruyu eksik sormuşum. Ben FireBird'in kabul etmediği üçüncü Select ifadesi
nedeniyle, sql kodunun o kısmını çözebilirsek sorun kalamayacak diye düşündüğümden aceleyle
soruyu eksik sormuşum. Ayrıca forumda arattımsada konunun çözümünü bulamadım.

Tekrar ilgi ve yardımlarınız için teşekkür ederim.
onaydin

Mesaj gönderen onaydin »

case kullanımı

Kod: Tümünü seç

case IZIN_TURU when 'SENELIK_IZIN' then 1 else 0 end
viewtopic.php?p=30323&highlight=
Cevapla