AccessTr.neT
Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) (/konu-sorguda-2-tablodan-sadece-1-kayit-en-ustteki-kayit.html)

Sayfalar: 1 2


Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - truhi - 21/08/2025

Kıymetli Hocalarım merhaba

Eli dosyada tbl_Orders ve tbl_OrderMaterials adında iki tablo mevcut, Order_ID değerleri üzerinden eşleştirme yapıyorum.

yer alan sorguda tbl_OrderMaterials tablosundan sadece 1 kayıt( en üsteki) kayıt gelecek şekilde düzenlemeye çalıştım ama;

Özetle her bir Order Numarasına ait 1 kayıt gelecek.

Kod:
SELECT tbl_Orders.ID, tbl_Orders.SuppNumber, tbl_Orders.SiteID, tbl_Orders.SiteName, tbl_Orders.SupplierName, tbl_Orders.OrderDate, First(tbl_OrderMaterials.MaterialName) AS Material
FROM tbl_Orders LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID;


desteğiniz için şimdiden teşekkürler,
iyi Çalışmalar.


RE: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - onur_can - 21/08/2025

Merhaba
Sorgu tasarım penceresinde ilişkinin türünü her 2 taboladan eşleşen kayıtları göster olarak ayarlayn.


RE: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - truhi - 21/08/2025

(21/08/2025, 14:33)onur_can yazdı: Merhaba
Sorgu tasarım penceresinde ilişkinin türünü her 2 taboladan eşleşen kayıtları göster olarak ayarlayn.
Hocam ilginiz için teşekkürler,

yalnız Material boş olanları da getirmesi gerekiyor, onları boş kayıt;
özetle Order ID' de tüm kayıtlar gelmeli, material olanlarda 1 kayıt, olmayanlar boş olarak gelmeli

iyi Çalışmalar dilerim.


RE: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - onur_can - 21/08/2025

açıklamanız yetersiz, her 2 tabloyla bu işlemi yapmak için 2 tablo arasında ilişki kurmalısınız, ilişkide kurulmamış, ayrıca boş derken bir alandan mı bahsediyorsunuz, hangi tablonun hangi alanı boş olanlar?


RE: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - berduş - 21/08/2025

aşağıdakine benzer bir sorgu işinizi görebiir
ben tek sorgu olarak tasarladım ama siz 2 sorgunun birleşimi olarak da tasarlayabilirsiniz
SELECT
xSQL.ID,
xSQL.SuppNumber,
xSQL.SiteID,
xSQL.SiteName,
xSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
(
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate
) AS xSQL
LEFT JOIN tbl_OrderMaterials ON xSQL.EnAzID = tbl_OrderMaterials.ID;
_______________________________________________________________________
yada 2 sorgu halinde
önce AraSQL adında sorgu oluşturup aşağıda kodu girin
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate;
sonra da aşağıdaki sorguy oluşturmayı deneyin
SELECT
AraSQL.ID,
AraSQL.SuppNumber,
AraSQL.SiteID,
AraSQL.SiteName,
AraSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
AraSQL
LEFT JOIN tbl_OrderMaterials ON AraSQL.EnAzID = tbl_OrderMaterials.ID;
dilerim işinize yarar


RE: Sorguda 2. Tablodan Sadece 1 Kayıt (en Üstteki Kayıt) - truhi - 21/08/2025

(21/08/2025, 15:30)berduş yazdı: aşağıdakine benzer bir sorgu işinizi görebiir
ben tek sorgu olarak tasarladım ama siz 2 sorgunun birleşimi olarak da tasarlayabilirsiniz
SELECT
xSQL.ID,
xSQL.SuppNumber,
xSQL.SiteID,
xSQL.SiteName,
xSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
(
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate
) AS xSQL
LEFT JOIN tbl_OrderMaterials ON xSQL.EnAzID = tbl_OrderMaterials.ID;
_______________________________________________________________________
yada 2 sorgu halinde
önce AraSQL adında sorgu oluşturup aşağıda kodu girin
SELECT
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate,
Min(tbl_OrderMaterials.ID) AS EnAzID
FROM
tbl_Orders
LEFT JOIN tbl_OrderMaterials ON tbl_Orders.ID = tbl_OrderMaterials.Order_ID
GROUP BY
tbl_Orders.ID,
tbl_Orders.SuppNumber,
tbl_Orders.SiteID,
tbl_Orders.SiteName,
tbl_Orders.SupplierName,
tbl_Orders.OrderDate;
sonra da aşağıdaki sorguy oluşturmayı deneyin
SELECT
AraSQL.ID,
AraSQL.SuppNumber,
AraSQL.SiteID,
AraSQL.SiteName,
AraSQL.SupplierName,
OrderDate,
tbl_OrderMaterials.MaterialName
FROM
AraSQL
LEFT JOIN tbl_OrderMaterials ON AraSQL.EnAzID = tbl_OrderMaterials.ID;
dilerim işinize yarar

Teşekkürler Hocam ,
tam istediğim gibi oldu ...

iyi çalışmalar dilerim.