söyle bir rapor lazim oldu: tüm kasa kodlari itibariyle önceki günden devir,günlük giris,günlük çikis ve gün sonu bakiyelerini çeken bir sorgu yazmaya çalistim.
ancak sorgu destan gibi uzadi.
bu sorgu daha kisa nasil yazilabilir.
fikri ve elestirisi olan arkadaslardan mesaj bekliyorum.
sorgu söyle
select ksmas_kod,ksmas_name ,--dünden devreden (select isnull(sum(tutar),0)from (select '' hartip ,x.ksmas_kod kod,doviz=(select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod),tarih ,isnull(case when (select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod)='H' then tutar else doviztut end,0) tutar,IO gc ,(select doviztipi from tblkasamas where ksmas_kod=x.ksmas_kod) dovtip from tblkasa x union all select 'D' hartip ,ksmas_kod kod,dovizli doviz,'' tarih,case dovizli when 'H' then kssondev_t else kssondev_doviz end tutar,'G' gc,doviztipi dovtip from tblkasamas ) kasa where tarih < '02.21.2009' and kod=t.ksmas_kod and gc='G') - (select isnull(sum(tutar),0)from (select '' hartip ,x.ksmas_kod kod,doviz=(select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod),tarih ,isnull(case when (select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod)='H' then tutar else doviztut end,0) tutar,IO gc ,(select doviztipi from tblkasamas where ksmas_kod=x.ksmas_kod) dovtip from tblkasa x union all select 'D' hartip ,ksmas_kod kod,dovizli doviz,'' tarih,case dovizli when 'H' then kssondev_t else kssondev_doviz end tutar,'G' gc,doviztipi dovtip from tblkasamas ) kasa where tarih < '02.21.2009' and kod=t.ksmas_kod and gc='C') devir ,--bugün giren (select isnull(sum(tutar),0) from (select '' hartip ,x.ksmas_kod kod,doviz=(select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod),tarih ,isnull(case when (select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod)='H' then tutar else doviztut end,0) tutar,IO gc ,(select doviztipi from tblkasamas where ksmas_kod=x.ksmas_kod) dovtip from tblkasa x union all select 'D' hartip ,ksmas_kod kod,dovizli doviz,'' tarih,case dovizli when 'H' then kssondev_t else kssondev_doviz end tutar,'G' gc,doviztipi dovtip from tblkasamas ) kasa where tarih = '02.21.2009' and kod=t.ksmas_kod and gc='G' ) ggiris ,--bugün çikan (select isnull(sum(tutar),0) from (select '' hartip ,x.ksmas_kod kod,doviz=(select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod),tarih ,isnull(case when (select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod)='H' then tutar else doviztut end,0) tutar,IO gc ,(select doviztipi from tblkasamas where ksmas_kod=x.ksmas_kod) dovtip from tblkasa x union all select 'D' hartip ,ksmas_kod kod,dovizli doviz,'' tarih,case dovizli when 'H' then kssondev_t else kssondev_doviz end tutar,'G' gc,doviztipi dovtip from tblkasamas ) kasa where tarih = '02.21.2009' and kod=t.ksmas_kod and gc='C' ) gcikis ,--kalan (select isnull(sum(tutar),0) from (select '' hartip ,x.ksmas_kod kod,doviz=(select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod),tarih ,isnull(case when (select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod)='H' then tutar else doviztut end,0) tutar,IO gc ,(select doviztipi from tblkasamas where ksmas_kod=x.ksmas_kod) dovtip from tblkasa x union all select 'D' hartip ,ksmas_kod kod,dovizli doviz,'' tarih,case dovizli when 'H' then kssondev_t else kssondev_doviz end tutar,'G' gc,doviztipi dovtip from tblkasamas ) kasa where tarih <= '02.21.2009' and kod=t.ksmas_kod and gc='G' ) - (select isnull(sum(tutar),0) from (select '' hartip ,x.ksmas_kod kod,doviz=(select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod),tarih ,isnull(case when (select dovizli from tblkasamas where ksmas_kod=x.ksmas_kod)='H' then tutar else doviztut end,0) tutar,IO gc ,(select doviztipi from tblkasamas where ksmas_kod=x.ksmas_kod) dovtip from tblkasa x union all select 'D' hartip ,ksmas_kod kod,dovizli doviz,'' tarih,case dovizli when 'H' then kssondev_t else kssondev_doviz end tutar,'G' gc,doviztipi dovtip from tblkasamas ) kasa where tarih <= '02.21.2009' and kod=t.ksmas_kod and gc='C' ) kalan ,case doviztipi when 0 then (select yedek6 from TBLPARAM where SUBE_KODU=0) else (select ISIM from NETSIS..kur where SIRA=t.doviztipi) end dtip from tblkasamas t
|