İki masam olduğunu hayal et:
Tablo A
Adlar | Satışlar | Bölüm |
---|---|---|
Dave | 5 | Ayakkabı |
mikrofon | 6 | Giyim |
Dan | 7 | Ön Uç |
Tablo B
Adlar | satışlar | Bölüm |
---|---|---|
Dave | 5 | Ayakkabı |
mikrofon | 12 | Giyim |
Dan | 7 | Ön Uç |
Gregg | 23 | Ayakkabı |
Kim | 15 | Ön Uç |
Tabloları adlara göre birleştiren ve satışların toplamını tabloya göre ayıran bir sorgu oluşturmak istiyorum. Ayrıca, bu durumda dize eşleşmelerini veya kısmi eşleşmeleri belirli adlarla kaldırmak için sorgumu filtrelemek istiyorum.
İstediğim şey şu sonuçtur
Tablo C:
Bir Satış Toplamı | B Satış Toplamı |
---|---|
18 | 24 |
Bunu aşağıdaki gibi bir sorgu ile yapabileceğimi biliyorum:
SELECT SUM(A.sales) AS 'A Sales Sum', SUM(B.sales) AS 'B sales Sum' FROM A
JOIN B
ON B.names = A.Names
WHERE Names NOT LIKE '%Gregg%' OR NOT LIKE '%Kim%'
Bununla ilgili sorun, WHERE yan tümcesinin geçerli görünmemesi veya yanlış tabloya uygulanmasıdır. İsimler sütunu ikisi arasında tam olarak uyuşmadığından, 'B. names = A. Names' üzerine katıldıklarında, B'den gelen ekstralar hariç tutuluyor mu? Yine de bir şeyleri çevirdiğimde aynı sonucu alıyorum, ki bu filtre uygulanmıyor. Aldığım yanlış sonuç şudur:
Tablo D:
Bir Satış Toplamı | B Satış Toplamı |
---|---|
18 | 62 |
Açıkçası, Sql'de oldukça yeni olduğum için burada bir sözdizimi sorunum var. Neyi kaçırıyorum? Teşekkürler!