Birden çok tabloya dayalı sorgu oluşturma

Bazen, Access’te sorguları oluşturma ve kullanma süreci bir tablodan alanları seçmek, belki bazı ölçütler uygulamak ve ardından sonuçları görüntülemekten ibarettir. Ama daha çok karşılaştığımız gibi, size gereken veriler birden çok tabloya yayıldığında ne olacak? Neyse ki, birden çok kaynaktan bilgileri bir araya getiren sorgular oluşturabilirsiniz. Bu konu başlığı altında birden çok tablodan veri aldığınız bazı senaryolar incelenir ve bunu nasıl yapacağınız gösterilir.

Ne yapmak istiyorsunuz?

Sorgunuzdaki bilgileri geliştirmek için ilgili bir tablodan verileri kullanma

Üçüncü bir tabloyla ilişkilerini kullanarak iki tablonun verileri arasında bağlantı kurma

Birbirine benzeyen iki tablonun tüm kayıtlarını görüntüleme

Sorgunuzdaki bilgileri geliştirmek için ilgili bir tablodan verileri kullanma

Tek tabloya dayalı bir sorgunun size gereken bilgileri sağladığı durumlar olabilir, ama başka bir tablodan daha veri almak sorgu sonuçlarının daha net ve daha kullanışlı olmasına yardım edebilir. Örneğin, sorgu sonuçlarınızda çalışan kimliklerinin listesinin gösterildiğini varsayalım. Sonuçlarda çalışan adlarının gösterilmesinin daha yararlı olduğunu fark ettiniz ama çalışan adları başka bir tabloda yer alıyor. Sorgu sonuçlarında çalışan adlarının gösterilmesini sağlamak için, sorgunuza her iki tabloyu da eklemeniz gerekir.

Sorgu Sihirbazı’nı kullanarak bir birincil tablo ve bir de ilişkili tablodan sorgu oluşturma

  1. Tabloların, İlişkiler penceresi içinde tanımlı bir ilişki sahip olduklarından emin olun.

    Nasıl mı?

    1. Veritabanı Araçları sekmesinin Göster/Gizle grubunda İlişkiler'e tıklayın.

    2. Tasarım sekmesinin İlişkiler grubunda Tüm İlişkiler'e tıklayın.

    3. Tanımlı ilişkisi olması gereken tabloları belirleyin.

      • Tablolar İlişkiler penceresinde görünüyorsa, önceden bir ilişkinin tanımlanmış olup olmadığına bakın.

        İlişki, iki tabloyu ortak bir alanla bağlayan bir çizgi olarak gösterilir. İlişki çizgisine çift tıklayarak tablolardaki hangi alanların ilişkiyle bağlandığını görebilirsiniz.

      • Tablolar İlişkiler penceresinde görünmüyorsa, bunları eklemeniz gerekir.

        Tasarım sekmesinin Göster/Gizle grubunda Tablo Adları’na tıklayın.

        Gösterilmesini istediğiniz her tabloya çift tıklayın ve ardından Kapat’a tıklayın.

    4. İki tablo arasında bir ilişki bulamazsanız, tablolardan birinde bulunan bir alanı diğer tablodaki bir alana sürükleyerek ilişki oluşturun. Tablolar arasında ilişki oluşturmak için kullandığınız alanların veri türleri aynı olmalıdır.

      Not : OtomatikSayı veri türü bir alanla, alan boyutu uzun tamsayı olan Sayı veri türü alanı arasında ilişki oluşturabilirsiniz. bir-çok ilişkisi oluştururken durum çoğunlukla böyle olur.

      İlişkileri Düzenle iletişim kutusu görüntülenir.

    5. Oluştur’a tıklayarak ilişkiyi oluşturun.

      İlişki oluştururken kullanabileceğiniz seçenekler hakkında daha fazla bilgi için, İlişkiyi oluşturma, düzenleme veya silme makalesine bakın.

    6. İlişkiler penceresini kapatın.

  2. Oluştur sekmesinin Sorgular grubunda Sorgu Sihirbazı'na tıklayın. Access 2007 kullanıyorsanız Oluştur sekmesinin Diğer grubunda Sorgu Sihirbazı'na tıklayın.

  3. Yeni Sorgu iletişim kutusunda Basit Sorgu Sihirbazı'na ve sonra da Tamam'a tıklayın.

  4. Tablolar/Sorgular birleşik giriş kutusunda, sorguya eklenmesini istediğiniz temel bilgileri içeren tabloya tıklayın.

  5. Kullanılabilir Alanlar listesinde, sorgunuza eklemek istediğiniz ilk alana tıklayın, ardından tek sağ ok düğmesine tıklayarak alanı Seçili Alanlar listesine taşıyın. Bu tablodan sorgunuza eklemek istediğiniz her ek alan için aynı işlemi yapın. Bunlar sorgu çıkışında döndürülmesini istediğiniz alanlar olabileceği gibi, ölçüt uygulayarak çıkıştaki satırları sınırlandırmak istediğiniz alanlar da olabilir.

  6. Tablolar/Sorgular birleşik giriş kutusunda, sorgu sonuçlarınızı geliştirmek için kullanmak istediğiniz ilişkili verileri içeren tabloya tıklayın.

  7. Sorgu sonuçlarınızı geliştirmek için kullanmak istediğiniz alanları Seçili Alanlar listesine ekleyin ve ardından İleri’ye tıklayın.

  8. Ayrıntılı sorgu mu özet sorgu mu istersiniz? alanında Ayrıntılı veya Özet’e tıklayın.

    Sorgunuzun hiçbir toplama işlevi (Topla, Ort, Min, Mak, Say, StSapma veya Var) gerçekleştirmesini istemiyorsanız, ayrıntı sorgusunu seçin. Sorgunuzun toplama işlevi gerçekleştirmesini istiyorsanız, özet sorgusunu seçin. Seçiminizi yaptıktan sonra İleri'ye tıklayın.

  9. Sonuçları görüntülemek için Son’a tıklayın.

Northwind örnek veritabanının kullanıldığı bir örnek

Aşağıdaki örnekte, Sorgu Sihirbazı’nı kullanarak sipariş listesini, her siparişin nakliye ücretini ve her siparişle ilgilenen çalışanın adını içeren bir sorgu oluşturuyorsunuz.

Not : Bu örnekte, Northwind örnek veritabanında değişiklik yapılıyor. Northwind örnek veritabanının yedek kopyasını almak ve bu örneği izlerken o yedek kopyayı kullanmak isteyebilirsiniz.

Sorgu Sihirbazı’nı kullanarak sorgu oluşturma

  1. Northwind örnek veritabanını açın. Oturum açma formunu kapatın.

  2. Oluştur sekmesinin Sorgular grubunda Sorgu Sihirbazı'na tıklayın. Access 2007 kullanıyorsanız Oluştur sekmesinin Diğer grubunda Sorgu Sihirbazı'na tıklayın.

  3. Yeni Sorgu iletişim kutusunda Basit Sorgu Sihirbazı'na ve sonra da Tamam'a tıklayın.

  4. Tablolar/Sorgular birleşik giriş kutusunda Tablo: Siparişler’e tıklayın.

  5. Kullanılabilir Alanlar listesinde, SiparişNo’ya çift tıklayarak bu alanı Seçili Alanlar listesine taşıyın. Nakliye Ücreti’ne çift tıklayarak bu alanı Seçili Alanlar listesine taşıyın.

  6. Tablolar/Sorgular birleşik giriş kutusunda Tablo: Çalışanlar’a tıklayın.

  7. Kullanılabilir Alanlar listesinde, Ad’a çift tıklayarak bu alanı Seçili Alanlar listesine taşıyın. Soyadı’na çift tıklayarak bu alanı Seçili Alanlar listesine taşıyın. İleri'ye tıklayın.

  8. Tüm siparişlerin listesini oluşturduğunuzdan, ayrıntı sorgusu kullanmak istersiniz. Çalışana göre nakliye ücretlerinin toplamını alıyorsanız veya başka bir toplama işlevi gerçekleştiriyorsanız, özet sorgusu kullanırsınız. Ayrıntılı (her kaydın tüm alanlarını gösterir) öğesine ve sonra da İleri’ye tıklayın.

  9. Sonuçları görüntülemek için Son’a tıklayın.

Sorgu siparişlerin listesini döndürür; her siparişin nakliye ücreti ve siparişle ilgilenen çalışanın adı ve soyadı da gösterilir.

Sayfanın Başı

Üçüncü bir tabloyla ilişkilerini kullanarak iki tablonun verileri arasında bağlantı kurma

Genellikle, iki tablodaki veriler bir üçüncü tablo üzerinden birbiriyle ilişkilendirilir. Bunun çoğunlukla böyle olmasının nedeni, ilk iki tablo arasında verilerin bir çok-çok ilişkisi içinde ilişkili olmasıdır. Genellikle, iki tablo arasındaki çoka çok ilişkisini üç tablonun katıldığı iki tane bire çok ilişkisine bölmek iyi bir veritabanı tasarımı uygulamasıdır. Bunu yapmak için birleşim tablosu veya ilişki tablosu olarak adlandırılan ve diğer tabloların her biri için birincil anahtar ve yabancı anahtar içeren üçüncü bir tablo oluşturursunuz. Ardından birleşim tablosundaki her yabancı anahtarla diğer tablolardan birindeki buna karşılık gelen birincil anahtar arasında bire çok ilişkisi oluşturulur. Böyle durumlarda, yalnızca iki tablodan veri almak istiyor olsanız bile, tabloların üçünü de sorgunuza eklemeniz gerekir.

Çoka çok ilişkisi olan tabloları kullanarak seçme sorgusu oluşturma

  1. Oluştur sekmesinin Sorgular grubunda Sorgu Tasarımı'na tıklayın. Access 2007 kullanıyorsanız Oluştur sekmesinin Diğer grubunda Sorgu Tasarımı'na tıklamanız gerekir.

    Tabloyu Göster iletişim kutusu açılır.

  2. Tabloyu Göster iletişim kutusunda, sorgunuza almak istediğiniz verileri içeren iki tabloya ve bunları bağlayan birleşim tablosuna çift tıklayın, sonra da Kapat’a tıklayın.

    Tabloların üçü de, uygun alanlarından birleştirilmiş olarak sorgu tasarımı çalışma alanında gösterilir.

  3. Sorgu sonuçlarınızda kullanmak istediğiniz alanların her birine çift tıklayın. Bundan sonra her alan sorgu tasarım kılavuzu içinde gösterilir.

  4. Sorgu tasarımı kılavuzunda, Ölçütler satırını kullanarak alan ölçütlerini girin. Bir alanı sorgu sonuçlarında görüntülemeden alan ölçütünü kullanmak için, söz konusu alanın Göster satırındaki onay kutusunu temizleyin.

  5. Sonuçları bir alandaki değerlere göre sıralamak için, sorgu tasarımı kılavuzunda söz konusu alanın Sırala satırında Artan veya Azalan seçeneğine (kayıtları nasıl sıralamak istediğinize bağlı olarak) tıklayın.

  6. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

    Access sorgu çıkışında Veri Sayfası görünümünde gösterir.

Northwind örnek veritabanının kullanıldığı bir örnek

Not : Bu örnekte, Northwind örnek veritabanında değişiklik yapılıyor. Northwind örnek veritabanının yedek kopyasını almak ve bu örneği izlerken yedek kopyayı kullanmak isteyebilirsiniz.

Yeni bir fırsat elde ettiğinizi varsayalım: Rio de Janeiro’daki bir sağlayıcı Web sitenizi bulmuş ve sizinle iş yapmak istiyor olabilir. Öte yandan, onlar yalnızca Rio’da ve São Paulo yakınlarında faaliyet gösteriyorlar. Sizin acentalığını yaptığınız tüm gıda ürünleri kategorisini tedarik ediyorlar. Bu oldukça büyük bir işletme ve sizden dişe dokunur bir potansiyel satış miktarına ulaşabileceklerine dair güvence sağlamanızı istiyor: yıllık en az 20.000,00 Brezilya reali tutarında satış (yaklaşık 9.300,00 ABD Doları). İhtiyaçları olan pazarı onlara sağlayabilecek misiniz?

Bu soruyu yanıtlamak için gereken veriler iki yerde duruyor: Müşteriler tablosu ve Sipariş Ayrıntıları tablosu. Bu tablolar, bir Siparişler tablosuyla birbirine bağlanıyor. Tablolar arasındaki ilişkiler zaten tanımlanmış durumdu. Siparişler tablosunda, her siparişin Müşteriler tablosunun MüşteriKimliği alanıyla ilişkilendirilmiş tek bir müşterisi olabilir. Sipariş Ayrıntısı tablosundaki her kayıt, Siparişler tablosunun SiparişNo alanındaki tek bir siparişle ilişkilidir. Dolayısıyla, bir müşterinin birden çok siparişi olabilir ve her birinin birçok sipariş ayrıntısı bulunabilir.

Bu örnekte, Rio de Janeiro ve São Paulo şehirlerindeki yıllık toplam satışları görüntüleyen bir çapraz sorgu oluşturursunuz.

Sorguyu Tasarım görünümünde oluşturma

  1. NorthWind veritabanını açın. Oturum açma formunu kapatın.

  2. Oluştur sekmesinin Sorgular grubunda Sorgu Tasarımı'na tıklayın. Access 2007 kullanıyorsanız Oluştur sekmesinin Diğer grubunda Sorgu Tasarımı'na tıklamanız gerekir.

    Tabloyu Göster iletişim kutusu açılır.

  3. Tabloyu Göster iletişim kutusunda Müşteriler, Siparişler ve Sipariş Ayrıntıları’na çift tıklayın ve sonra Kapat 'a tıklayın.

    Tabloların üçü de sorgu tasarımı çalışma alanında gösterilir.

  4. Müşteriler tablosunda, Şehir alanını sorgu tasarım kılavuzuna eklemek için çift tıklayın.

  5. Sorgu tasarımı kılavuzunda, Şehir sütununa, Ölçütler satırına In ("Rio de Janeiro","São Paulo") yazın. Bu, yalnızca müşterinin söz konusu iki şehirden birinde olduğu kayıtların sorguya eklenmesine neden olur.

  6. Sipariş Ayrıntıları tablosunda, NakliyeTarihi ve BirimFiyatı alanlarına çift tıklayın.

    Alanlar, sorgu tasarımı kılavuzuna eklenir.

  7. Sorgu tasarımı kılavuzundaki NakliyeTarihi sütununda, Alan satırını seçin. [NakliyeTarihi] öğeini Yıl: Format([NakliyeTarihi],"yyyy") ile değiştirin. Bu, NakliyeTarihi alanındaki değerin yalnızca yıl bölümünü kullanmanıza olanak tanıyan bir alan diğer adı (Yıl) oluşturur.

  8. Sorgu tasarımı kılavuzundaki BirimFiyatı sütununda, Alan satırını seçin. [BirimFiyatı] öğesini Satış: [Sipariş Ayrıntıları].[BirimFiyatı]*[Miktar]-[Sipariş Ayrıntıları].[BirimFiyatı]*[Miktar]*[İndirim] ile değiştirin. Bu, her kayıt için satışı hesaplayan bir alan diğer adı (Satış) oluşturur.

  9. Tasarım sekmesinin Sorgu Türü grubunda Çapraz'a tıklayın.

    Sorgu tasarımı kılavuzunda iki yeni satır (Toplam ve Çapraz) gösterilir.

  10. Sorgu tasarımı kılavuzundaki Şehir sütununda, Çapraz satırına tıklayın ve sonra da Satır Başlığı’na tıklayın.

    Bu, şehir değerlerinin satır başlıkları olarak gösterilmesini sağlar (yani, sorgu her şehir için bir satır döndürür).

  11. Yıl sütununda Çapraz satırına tıklayın ve sonra da Sütun Başlığı’na tıklayın.

    Bu, yıl değerlerinin sütun başlıkları olarak gösterilmesini sağlar (yani, sorgu her yıl için bir sütun döndürür).

  12. Satış sütununda Çapraz satırına tıklayın ve sonra da Değer’e tıklayın.

    Bu, satış değerlerinin satırlarla sütunların kesişme noktasında gösterilmesini sağlar (yani, sorgu her şehir ve yıl bileşimi için bir satış değeri döndürür).

  13. Satış sütununda Toplamlar satırına tıklayın ve sonra da Topla’ya tıklayın.

    Bu, sorgunun bu sütundaki değerleri toplamasına neden olur.

    Diğer iki sütunun Toplamlar satırlarını varsayılan Gruplandır değerinde bırakabilirsiniz, çünkü toplam değerleri değil bu sütunlardaki tek tek değerleri görmek istiyorsunuz.

  14. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Artık, Rio de Janeiro ve São Paulo’daki yıllık toplam satışları döndüren bir sorgunuz vardır.

Sayfanın Başı

Birbirine benzeyen iki tablonun tüm kayıtlarını görüntüleme

Bazen, yapısı aynı olan ancak biri başka bir veritabanında yer alan iki tablodaki verileri birleştirmek istersiniz. Aşağıdaki senaryoyu ele alalım.

Öğrenci verileriyle çalışan bir analist olduğunuzu varsayalım. İki okulunda eğitim programını geliştirebilmesi için okulunuzla başka bir okul arasında bir veri paylaşım girişimi başlatıyorsunuz. İncelemek istediğiniz sorulardan bazıları için, her okulun kayıtlarına ayrı ayrı bakmak yerine her iki okulun tüm kayıtlarına birlikte bakmak daha iyi olabilir.

Diğer okulun verilerini veritabanınızda yeni tablolara aktarabilirsiniz, ama bu durumda o okulun verilerinde yapılan değişiklikler sizin veritabanınıza yansıtılamaz. Diğer okulun tablolarına bağlanmak ve ardından, çalıştırdığınızda verileri birleştiren sorgular oluşturmak daha iyi bir çözüm olabilir. İki analiz yapmak ve bunları tek analiz gibi yorumlamaya çalışmak yerine verileri tek bir küme olarak analiz edebilirsiniz.

Yapısı aynı olan iki tablodan kayıtların tümünü görüntülemek için bileşim sorgusu kullanırsınız.

Birleşim sorguları Tasarım görünümünde gösterilemez. Bu sorguları SQL görünümü nesne sekmesine girdiğiniz SQL komutlarını kullanarak oluşturursunuz.

İki tablo kullanarak birleşim sorgusu oluşturma

  1. Oluştur sekmesinin Sorgular grubunda Sorgu Tasarımı'na tıklayın. Access 2007 kullanıyorsanız Oluştur sekmesinin Diğer grubunda Sorgu Tasarımı'na tıklamanız gerekir.

    Yeni bir sorgu tasarımı kılavuzu açılır ve Tabloyu Göster iletişim kutusu görüntülenir.

  2. Tabloyu Göster iletişim kutusunda Kapat’a tıklayın.

  3. Tasarım sekmesinin Sorgu Türü grubunda Birleşim’e tıklayın.

    Sorgu, Tasarım görünümünden SQL görünümüne geçer. Bu noktada, SQL görünümü nesne sekmesi boştur.

  4. SQL görünümünde, SELECT yazıp ardına sorguda bulunmasını istediğiniz ilk tablodaki alanların listesini ekleyin. Alan adları köşeli ayraç içine alınmalı ve virgülle birbirinden ayrılmalıdır. Alan adlarını yazmayı bitirdiğinizde ENTER tuşuna basın. İmleç SQL görünümünde bir satır aşağı iner.

  5. FROM yazın ve ardından sorguda bulunmasını istediğiniz tablolardan ilkinin adını ekleyin. ENTER tuşuna basın.

  6. İlk tablodaki bir alan için ölçüt belirtmek istiyorsanız, WHERE yazın ve ardından alan adını, karşılaştırma işlecini (çoğunlukla eşittir işareti (=)) ve ölçütü ekleyin. WHERE yan tümcesinin sonuna, AND anahtar sözcüğünü ve ilk ölçütle aynı söz dizimini kullanarak başka ölçütler de ekleyebilirsiniz; örneğin, WHERE [SınıfDüzeyi]="100" AND [KrediSaatleri]>2. Ölçütleri belirtmeyi bitirdiğinizde ENTER tuşuna basın.

  7. UNION yazın ve ENTER tuşuna basın.

  8. SELECT yazıp ardına sorguda bulunmasını istediğiniz ikinci tablodaki alanların listesini ekleyin. İlk tablodan eklediğiniz alanlarla aynı alanları, aynı sırada bu tablodan da eklemelisiniz. Alan adları köşeli ayraç içine alınmalı ve virgülle birbirinden ayrılmalıdır. Alan adlarını yazmayı bitirdiğinizde ENTER tuşuna basın.

  9. FROM yazın ve ardından sorguya almak istediğiniz ikinci tablonun adını ekleyin. ENTER tuşuna basın.

  10. İsterseniz, bu yordamın 6. adımında açıklandığı gibi bir WHERE yan tümcesi ekleyin.

  11. Sorgunun sonuna gelindiğini belirtmek için noktalı virgül (;) yazın.

  12. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

    Sonuçlarınız Veri Sayfası görünümünde gösterilir.

Sayfanın Başı

Ayrıca Bkz:

Tabloları ve sorguları birleştirme

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×