update join toplama sorunu?

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
skyking
Üye
Mesajlar: 136
Kayıt: 09 Kas 2005 12:52
Konum: Antalya

update join toplama sorunu?

Mesaj gönderen skyking »

create table ##kasaalt
(id float,dbrim varchar(50),nak float,kre float,ind float,tip float,
ack float,fazla float)');

insert into ##kasaalt select 1,'Euro',0,0,0,0,0,0
insert into ##kasaalt select 2,'Usd',0,0,0,0,0,0
insert into ##kasaalt select 3,'TL',0,0,0,0,0,0


update ##kasaalt set nak=nak+dt.nakl,kre=kre+dt.krel,ind=ind+dt.indl
from ##kasaalt t JOIN (select dbrim,odetur,case when odetur='Nakit'
then sum(tutar) else 0 end as nakl,
case when odetur='Kredi Karti' then
sum(tutar) else 0 end as krel,
case when odetur='indirim' then
sum(tutar) else 0 end as indl
FROM ##kasa group by odetur,dbrim) as dt on dt.dbrim=t.dbrim

aslında benim sorunum join den sonraki select içinde gelen degerin
update yapılan tablaya toplayarak eklemesi nedir sorun google aramadım yer kalamadı?
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Update query'ini şöyle dener misin:

Kod: Tümünü seç

update ##kasaalt set
  nak=nak+dt.nakl,
  kre=kre+dt.krel,
  ind=ind+dt.indl
from ##kasaalt t
  INNER JOIN (
              select
                dbrim,
                SUM(case when odetur='Nakit' then tutar else 0 end) as nakl,
                SUM(case when odetur='Kredi Karti' then tutar else 0 end) as krel,
                SUM(case when odetur='indirim' then tutar else 0 end) as indl
              FROM ##kasa
              group by dbrim
             ) as dt on dt.dbrim=t.dbrim
İyi çalışmalar.
Cevapla