Forum

2 tabloyu birleştir...
 
Bildirimler
Hepsini Temizle

2 tabloyu birleştirip iki tablodanda bazı alanları toplamak istiyorum fakat toplamlar kayıt sayısı kadar çarpılıp öyle geliyor

3 Yazılar
1 Üyeler
0 Reactions
654 Görüntüleme
(@sezaiucan)
Gönderiler: 3
Active Member
Konu başlatıcı
 

merhabalar 2 tablom var

giderler

seferler

 

iki tablodada ortak alanlar plakano ve seferid

seferler tablosunda 34 e 3000 plakalı otobüs 1100 sefernolu seferde 5yolcu taşımış. 5x 20 = 100 lira toplamış

1100   34 E 3000         1        20 

1100   34 E 3000         1        20 

1100   34 E 3000         1        20 

1100   34 E 3000         1        20 

1100   34 E 3000         1        20 

 

giderler tablosunda bu sefernoya ait gider girişleri var

1100   34 E 3000         kaptan        10 

1100   34 E 3000         muavin        10 

1100   34 E 3000         yakıt        30 

1100   34 E 3000         otopark       5

 

 

almak istediğim sonuç şu:

seferno plakano yolcu tutar kaptan muavin yakıt otopark 

1100 34 E 3000 5 100 10 10 30 5

 

 SQL:

select   g.seferno,g.plakano,count(s.ID) as yolcu, sum(s.tutar) as tutar,

sum(case when g.islem='kaptan' then g.tutar else 0 end) kaptan ,

sum(case when g.islem='muavin' then g.tutar else 0 end) muavin,

sum(case when g.islem='yakıt' then g.tutar else 0 end) yakıt,

sum(case when g.islem='otopark' then g.tutar else 0 end) otopark

from giderler g

left outer join seferler s on s.seferid=g.seferid

where g.tarih='2014-09-01'

group by g.plaka,g.seferid 

 

fakat yolcu sayısı 5 yerine 25 görünüyor, tutar 100 yerine 500 görünüyor.

nerede yanlış yapmış olabilirim yardımcı olursanız sevinirim.

teşekkürler. 

 

 

 

 

 
Gönderildi : 23/09/2014 17:41

(@sezaiucan)
Gönderiler: 3
Active Member
Konu başlatıcı
 

inner join right join left join ne varsa denedim ama malesef bir türlü sonuca gidemedim.

 

 
Gönderildi : 23/09/2014 17:53

(@sezaiucan)
Gönderiler: 3
Active Member
Konu başlatıcı
 

iç içe select kullanınca sonuca varıyorum,

fakat 5 adet select kullanmalıyım sorguda size gönderdiğim sadece bir örnek. gerçek sorgu daha detaylı.

aynı sorguda 5 select kullanınca sonuç olumlu ama sorgu sonucu 2 dakikadan fazla sürüyor o zamanda, gerekli alanlar indexli olduğu galde 

 
Gönderildi : 23/09/2014 17:57

Paylaş: