Interbase de Distinct Hatası
ekazmaci18.09.2003 - 16:51:19
Merhaba.
SELECT DISTINCT PRSICIL AS SicilNo,TARIH AS Tarih,VRKODU AS Vardiya,PSKODU AS Posta
,(SELECT ONSURE FROM PUANTAJ1 P2 WHERE P2.PRSICIL=P1.PRSICIL AND P2.TARIH=P1.TARIH AND P2.CLKODU=1) AS ON1
,(SELECT ONSURE FROM PUANTAJ1 P2 WHERE P2.PRSICIL=P1.PRSICIL AND P2.TARIH=P1.TARIH AND P2.CLKODU=2) AS ON2
,(SELECT ONSURE FROM PUANTAJ1 P2 WHERE P2.PRSICIL=P1.PRSICIL AND P2.TARIH=P1.TARIH AND P2.CLKODU=3) AS ON3
,(SELECT ONSURE FROM PUANTAJ1 P2 WHERE P2.PRSICIL=P1.PRSICIL AND P2.TARIH=P1.TARIH AND P2.CLKODU=4) AS ON4
,(SELECT ONSURE FROM PUANTAJ1 P2 WHERE P2.PRSICIL=P1.PRSICIL AND P2.TARIH=P1.TARIH AND P2.CLKODU=5) AS ON5
FROM PUANTAJ1 P1

Yukarıdaki sorguyu Interbase veritabanında çalıştırdığımda

Invalid request BLR at offset 345
context already in use (BLR error)

şeklinde bir hata mesajı veriyor.
Sorgudan DISTINCT ifadesini kaldırdığımda çalıştırıyor ancak kayıtlar birden fazla görülüyor.
NOT:Aynı sorguyu MSSQL veritabanında çalıştırdığımda hiçbir hata vermiyor.
Yukarıdaki sorguyu Interbase veritabanında DISTINCT ile çalıştırabilmek için ne yapabilirim?
Yardımcı olabilecek arkadaşlara şimdiden Teşekkürler.
 
fahrettin19.09.2003 - 08:06:10
Hatayı neden verdiğini bilemiyorum fakat çalının etrafını dolaşarak çözmek adına şunu önerebilirim:
Subquery'ler yerine P2,P3,P4,P5,P6 şeklinde aliaslarla tek bir join ve tek bir query yapın yani subqery kullanmaksızın. Bu durumda sanıyorum sorun çıkmayacaktır.
 
ekazmaci19.09.2003 - 16:21:29
merhaba.
yukarıdaki sorunun interbase' deki bir bug dan kaynaklandığını ve bu sorunun firebird 1.5' beta3 ten sonrasında olmadığını öğrendim.kendim de denedim ve düzeldiğini gördüm.
İlgilenen arkadaşlara bildirmek istedim.
herkese iyi çalışmalar.
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com