C#nedir?com Homepage
Forum Home Forum Home > Veritabanları > SQL Server
  New Posts New Posts RSS Feed - Sql'de iki veri tek satırda nasıl birleşir
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Sql'de iki veri tek satırda nasıl birleşir

 Post Reply Post Reply
   

Author
Message
Becky View Drop Down
Newbie
Newbie


Joined: 13 Eylül 2011
Location: Turkey
Status: Offline
Points: 2
Post Options Post Options   Thanks (0) Thanks(0)   Quote Becky Quote  Post ReplyReply Direct Link To This Post Topic: Sql'de iki veri tek satırda nasıl birleşir
    Posted: 13 Eylül 2011 at 19:03
Sql'de iki tabloda tutulan parasal değerleri tek sorguda birleştirip her bir müşterinin borçlu mu alacaklı mı olduğunu tespit etmem gerek.
 
mesela
A müşterisi 800 TL.
B müşterisi 400 TL.
C müşterisi -200 TL.
gibi sonuçlar döndürmem gerek.
 
Siparişler Tablosu
MusteriID
Tutari
Avans
 
CariHesaplar Tablosu
MusteriID
Alacak
Borc
 
Yapmak istediğim Herbir müşteri için
Siparişler Tablosu (Tutari-Avans) as ToplamBorc
Cari Hesaplar Tablosu (Alacak-Borc) as ToplamAlacak
 
Sonuc olarak (ToplamBorc-ToplamAlacak) as GenelToplam'i verecek sekilde bir sorgu yapmam gerek.

Yaptigim sorgu:
Select sum(Tutari-Avans) from SIPARISLER where MusteriID='19'
union
Select sum(Alacak-Borc) from CARIHESAPLAR where MusteriI='19'

Aldigim Sonuc:
NoColumnName
1- 2920,00
2- 2500,00

Almak istedigim sonuç ise:
NoColumnName
1- 420,00
 
Biraz acil arkadaslar. Ilgilenirseniz sevinirim.
Şimdiden teşekkürler...


Edited by Becky - 15 Eylül 2011 at 17:13
Back to Top
Becky View Drop Down
Newbie
Newbie


Joined: 13 Eylül 2011
Location: Turkey
Status: Offline
Points: 2
Post Options Post Options   Thanks (0) Thanks(0)   Quote Becky Quote  Post ReplyReply Direct Link To This Post Posted: 20 Eylül 2011 at 17:50
Çözüm bulundu. Faydali olur dusuncesiyle paylasiyorum.

Tek musteri icin:

select sum(toplam) from (
Select (Tutari-Avans) as Toplam from SIPARISLER where MusteriID='1'
union ALL
Select (-1) * (Alacak-Borc) from CARIHESAPLAR where MusteriID='1') temp;

tüm müşteriler için:

select MusteriID, sum(toplam) from (
Select MusteriID, Tutari-Avans as Toplam from SIPARISLER
union ALL
Select MusteriID, (-1) * (Alacak - Borc) from CARIHESAPLAR ) temp
group by MusteriID;
Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.