SQL-TABLO ARASI FARK

Katılım
22 Mar 2017
Mesajlar
11
Puanları
3
Yaş
28
Yapmak istediğim tam olarak aşağıda anlattığım şekildedir.

x ve y adlarında iki tablom var.
Altta koyu renkli olanlar sütun başlıklarıdır aralarına virgül koydum.
x tablosu için;

x_id , adetx , isim
1 200 ab
2 300 av
3 400 dv
4 500 xy

y tablosu için;

y_id , x_id , adety
1 1 50
2 1 60
3 2 150
4 3 350
yukarıda örnek olarak verdim.

Görüldüğü gibi x tablosunda 4 numaralı id nin adet i 500 ve isim i xy dir fakat x_id si y tablosunda yoktur. Fakat olmamasına rağmen eğer yoksa bile farkı görmek istiyorum.Yani yoksa farkın direkt 500 olması lazım.
örnek olarak "where x.x_id=y.x_id" yaptığım zaman sadece her iki tabloda olanlar geliyor.Ben sağ taraftaki tabloda olmasa dahi,soldaki tablodan adet i alıp çıkarma işlemini yapmasını istiyorum.
y tablosunda x_id ler grup olacak şekilde toplamak istiyorum ve x tablosu ile birlikte göstermek istiyorum. Yani olmasını istediğim yukarıdaki örnekteki değerleri baz alarak aşağıya uyguluyorum.

isim adetx adety fark
ab 200 110 90
av 300 150 150
dv 400 350 50
xy 500 0 500


Lütfen acil yardım
 

ISMAILY

Üye
Katılım
9 Nis 2010
Mesajlar
393
Puanları
18
X de olup Y de olmayanlar için.
SELECT * FROM X WHERE NOT EXISTS (SELECT * FROM Y WHERE X.xid = (Y.xid)

Veya Toplamları farklı olanlar için
SELECT *, (SELECT SUM(ADETY) FROM Y WHERE X.xid = Y.xid)
FROM X WHERE
NOT EXISTS (SELECT * FROM Y WHERE X.xid = Y.xid) OR
(SELECT SUM(ADETY) FROM Y WHERE X.xid = Y.xid) <> ADETX

Veya X deki herşey + Y toplamları
SELECT *, (SELECT SUM(ADETY) FROM Y WHERE X.xid = Y.xid)
FROM X
 
Konu Sah
A
Katılım
22 Mar 2017
Mesajlar
11
Puanları
3
Yaş
28
X de olup Y de olmayanlar için.
SELECT * FROM X WHERE NOT EXISTS (SELECT * FROM Y WHERE X.xid = (Y.xid)

Veya Toplamları farklı olanlar için
SELECT *, (SELECT SUM(ADETY) FROM Y WHERE X.xid = Y.xid)
FROM X WHERE
NOT EXISTS (SELECT * FROM Y WHERE X.xid = Y.xid) OR
(SELECT SUM(ADETY) FROM Y WHERE X.xid = Y.xid) <> ADETX

Veya X deki herşey + Y toplamları
SELECT *, (SELECT SUM(ADETY) FROM Y WHERE X.xid = Y.xid)
FROM X
Sayın ISMAILY yardımınız için çok teşekkür ederim. Verdiğiniz bilgi tam olarak istediğimi karşılıyor. Emek verip vakit ayırdığınız için çok sağolun. Bu kadar kısa zamanda cevap alabileceğimi sanmıyordum. Erken yetiştiniz yardımıma:):)
 

Sponsor Bağlantı

Yeni mesajlar

Forum istatistikleri

Konular
106,004
Mesajlar
746,758
Kullanıcılar
393,952
Son üye
oguzhanakbas

Yeni konular

Üst