(2)
sql taklası (meraktan)
aqt'de şöyle bi sorgu yazıyorum, sonra da en alttaki gibi bi mesaj alıyorum. çok mu abartıyorum?select count( distinct tabloA.id)fromtabloAwhere( select tabloA.id from tabloA where tabloA.tarih = '201105' tabloB.durum = 'pasif' and tabloA.id IN ( select tabloA.id from tabloA where tabloA.t
aqt'de şöyle bi sorgu yazıyorum, sonra da en alttaki gibi bi mesaj alıyorum. çok mu abartıyorum?
select
count( distinct tabloA.id)
from
tabloA
where
(
select
tabloA.id
from
tabloA
where
tabloA.tarih = '201105'
tabloB.durum = 'pasif'
and tabloA.id IN (
select
tabloA.id
from
tabloA
where
tabloA.tarih = '201005'
tabloA.durum = 'aktif'
)
in ( select tabloB.id from tabloB where tabloB.gelir in ('vayanasını', 'haydehoppaterelelli'))
--------------- bu da gelen mesaj-------------------
S1000(-1001030)[Sybase][ODBC Driver][Adaptive Server IQ]General error: Feature, scalar value subquery (at line 15) outside of a top level SELECT list, is not supported.
-- (opt_Select.cxx 1739) (0,06 secs)
0
aqt ic detaylarını bilmiyorum ama klasik sql de a tablosu ve b tablosunu aynı seviyede kriter belirteceksen uniqe bir alandan eslestırmen gerekir.
---
tabloA.tarih = '201105'
tabloB.durum = 'pasif'
---
bunu soylemek icin TabloA.x=tablob.Y demen gerektigini dusunuyorum.
hoş gerçi genel yapıya bakınca plsql den cok cok alakasız bir yapıda oldugunu gorebiliyoruz. bu yuzden yanlıs olması muhtemelen yukarda soyledıgımın.
ikinci olarak en alt satırda yer alan ;
in ( select tabloB.id from tabloB where tabloB.gelir in ('vayanasını', 'haydehoppaterelelli')) kısmı neyi ifade ettigi de belirsiz .. yanı tablob.X in dersin olur ama herhangi bir ref yokken yazılmıs gorunuyor..
muhtemelen aqt ye ozgu bi yapısı var bu yuzden yazdıklarım manasız olabilir.
0
tabloyu joinlemiyorum, ama iki sorguda gelen id'leri karşılaştırmak istiyorum. karşılaştırılacak sorgulardan birinin içinde 2 sorgu daha olduğu için sıkıntı yaratıyo anladığım kadarıyla.
0