Erdal,
Yanlis anlamadiysam SQL icinde ayni dosyayi birden fazla kez kullanmak icin farkli aliaslarla aciyorsun, oyle mi? Eger dogru anladiysam:
-Ayni dosyayi SQL de N kere kullanabilir ve hepsine farkli "gecici" aliaslar verebilirsin (gecici cunku sadece SQL calisirken kullaniliyor).
Basit bir ornek:
Visual Fox Pro
Create cursor test (Tarih d,Giris i,cikis i)
FOR ix=1 TO 10
INSERT INTO test VALUES (DATE()-m.ix, 1000,500)
endfor
Select gt.Tarih,gt.giris,gt.cikis,;
sum(Nvl(ct.giris-ct.cikis,0))+(gt.giris-gt.cikis) as kalan ;
from test gt ;
left join test ct on gt.tarih > ct.tarih ;
group by gt.Tarih,gt.Giris,gt.cikis
Tek bir tablo var. Tarih,giris,cikis. Basit olsun diye hergun 1000 giris, 500 cikis var. Gunluk giris, cikis ve kalan lazim. Tabloyu kendisiyle bagliyor ( test gt left join test ct ). Burada ayni tabloya SQL icinde gt ve ct diye gecici aliaslar ataniyor. SQL tabloyu acik degil ise otomatik olarak actigindan oncesinde use, use again vs gerekmiyor (ya da mevcut aliaslari hatirlaman).
Not: Niye gt ve ct diye sorarsan ben genelde yazmasi rahat olsun diye 2-3 harflik aliaslar kullaniyorum (ama 1 degil, gecerli de olsa tehlikeli). gt = girisTablosu, ct = cikisTablosu diye temsil ediyor orada benim icin.
Seninkine uyarlayinca:
Visual Fox Pro
select siparis.sipno,siparis.ckod as cmuskod,carikart.cad,satmas.cfisno,;
satmas.ckod as csatkod,satcari.cad;
from siparis ;
inner join carikart on siparis.ckod=carikart.ckod;
inner join satmas on siparis.csipno=satmas.csipno;
inner join carikart satcari on satmas.ckod=satcari.ckod;
into .....
SatCari, use again filan olmadan SQL icinde carikarti, SatCari olarak kullaniyor.